combinatorics.quiver.single_objMathlib.Combinatorics.Quiver.SingleObj

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2023 Antoine Labelle. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle
 -/
-import Mathbin.Combinatorics.Quiver.Cast
-import Mathbin.Combinatorics.Quiver.Symmetric
+import Combinatorics.Quiver.Cast
+import Combinatorics.Quiver.Symmetric
 
 #align_import combinatorics.quiver.single_obj from "leanprover-community/mathlib"@"327c3c0d9232d80e250dc8f65e7835b82b266ea5"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Antoine Labelle. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle
-
-! This file was ported from Lean 3 source module combinatorics.quiver.single_obj
-! leanprover-community/mathlib commit 327c3c0d9232d80e250dc8f65e7835b82b266ea5
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Combinatorics.Quiver.Cast
 import Mathbin.Combinatorics.Quiver.Symmetric
 
+#align_import combinatorics.quiver.single_obj from "leanprover-community/mathlib"@"327c3c0d9232d80e250dc8f65e7835b82b266ea5"
+
 /-!
 # Single-object quiver
 
Diff
@@ -116,16 +116,20 @@ theorem toPrefunctor_symm_id : toPrefunctor.symm (𝟭q (SingleObj α)) = id :=
 #align quiver.single_obj.to_prefunctor_symm_id Quiver.SingleObj.toPrefunctor_symm_id
 -/
 
+#print Quiver.SingleObj.toPrefunctor_comp /-
 theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
     toPrefunctor (g ∘ f) = toPrefunctor f ⋙q toPrefunctor g :=
   rfl
 #align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_comp
+-/
 
+#print Quiver.SingleObj.toPrefunctor_symm_comp /-
 @[simp]
 theorem toPrefunctor_symm_comp (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :
     toPrefunctor.symm (f ⋙q g) = toPrefunctor.symm g ∘ toPrefunctor.symm f := by
   simp only [Equiv.symm_apply_eq, to_prefunctor_comp, Equiv.apply_symm_apply]
 #align quiver.single_obj.to_prefunctor_symm_comp Quiver.SingleObj.toPrefunctor_symm_comp
+-/
 
 #print Quiver.SingleObj.pathToList /-
 /-- Auxiliary definition for `quiver.single_obj.path_equiv_list`.
Diff
@@ -36,7 +36,8 @@ namespace Quiver
 /-- Type tag on `unit` used to define single-object quivers. -/
 @[nolint unused_arguments]
 def SingleObj (α : Type _) : Type :=
-  Unit deriving Unique
+  Unit
+deriving Unique
 #align quiver.single_obj Quiver.SingleObj
 -/
 
Diff
@@ -115,20 +115,11 @@ theorem toPrefunctor_symm_id : toPrefunctor.symm (𝟭q (SingleObj α)) = id :=
 #align quiver.single_obj.to_prefunctor_symm_id Quiver.SingleObj.toPrefunctor_symm_id
 -/
 
-/- warning: quiver.single_obj.to_prefunctor_comp -> Quiver.SingleObj.toPrefunctor_comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : α -> β) (g : β -> γ), Eq.{max 1 (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (α -> γ) -> (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ) (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (fun (_x : Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) => (α -> β) -> (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β) f) (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (β -> γ) -> (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ) g))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} (f : α -> β) (g : β -> γ), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (α -> γ) (fun (_x : α -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u3, u2} α γ) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (Prefunctor.comp.{0, succ u3, 0, succ u1, 0, succ u2} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (α -> β) (fun (_x : α -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> β) => Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β)) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (Quiver.SingleObj.toPrefunctor.{u3, u1} α β) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (β -> γ) (fun (_x : β -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β -> γ) => Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u2} β γ) g))
-Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_compₓ'. -/
 theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
     toPrefunctor (g ∘ f) = toPrefunctor f ⋙q toPrefunctor g :=
   rfl
 #align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_comp
 
-/- warning: quiver.single_obj.to_prefunctor_symm_comp -> Quiver.SingleObj.toPrefunctor_symm_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_symm_comp Quiver.SingleObj.toPrefunctor_symm_compₓ'. -/
 @[simp]
 theorem toPrefunctor_symm_comp (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :
     toPrefunctor.symm (f ⋙q g) = toPrefunctor.symm g ∘ toPrefunctor.symm f := by
Diff
@@ -159,20 +159,13 @@ def listToPath : List α → Path (star α) (star α)
 
 #print Quiver.SingleObj.listToPath_pathToList /-
 theorem listToPath_pathToList {x : SingleObj α} (p : Path (star α) x) :
-    listToPath (pathToList p) = p.cast rfl Unit.ext :=
-  by
-  induction' p with y z p a ih
-  rfl
-  tidy
+    listToPath (pathToList p) = p.cast rfl Unit.ext := by induction' p with y z p a ih; rfl; tidy
 #align quiver.single_obj.path_to_list_to_path Quiver.SingleObj.listToPath_pathToList
 -/
 
 #print Quiver.SingleObj.pathToList_listToPath /-
-theorem pathToList_listToPath (l : List α) : pathToList (listToPath l) = l :=
-  by
-  induction' l with a l ih
-  rfl
-  simp [ih]
+theorem pathToList_listToPath (l : List α) : pathToList (listToPath l) = l := by
+  induction' l with a l ih; rfl; simp [ih]
 #align quiver.single_obj.list_to_path_to_list Quiver.SingleObj.pathToList_listToPath
 -/
 
Diff
@@ -127,10 +127,7 @@ theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
 #align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_comp
 
 /- warning: quiver.single_obj.to_prefunctor_symm_comp -> Quiver.SingleObj.toPrefunctor_symm_comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (g : Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)), Eq.{max (succ u1) (succ u3)} (α -> γ) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (fun (_x : Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) => (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> α -> γ) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) f g)) (Function.comp.{succ u1, succ u2, succ u3} α β γ (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (fun (_x : Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) => (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> β -> γ) (Equiv.hasCoeToFun.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (Equiv.symm.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ)) g) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (fun (_x : Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) => (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) -> α -> β) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β)) f))
-but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} (f : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (g : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u3, u1} α γ)) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (Function.comp.{succ u3, succ u2, succ u1} α β γ (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => β -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Equiv.symm.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (β -> γ) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u1} β γ)) g) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (fun (_x : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u3, u2} α β)) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_symm_comp Quiver.SingleObj.toPrefunctor_symm_compₓ'. -/
 @[simp]
 theorem toPrefunctor_symm_comp (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :
Diff
@@ -119,7 +119,7 @@ theorem toPrefunctor_symm_id : toPrefunctor.symm (𝟭q (SingleObj α)) = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : α -> β) (g : β -> γ), Eq.{max 1 (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (α -> γ) -> (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ) (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (fun (_x : Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) => (α -> β) -> (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β) f) (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (β -> γ) -> (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ) g))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} (f : α -> β) (g : β -> γ), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (α -> γ) (fun (_x : α -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u3, u2} α γ) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (Prefunctor.comp.{0, succ u3, 0, succ u1, 0, succ u2} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (α -> β) (fun (_x : α -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> β) => Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β)) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (Quiver.SingleObj.toPrefunctor.{u3, u1} α β) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (β -> γ) (fun (_x : β -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β -> γ) => Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u2} β γ) g))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} (f : α -> β) (g : β -> γ), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (α -> γ) (fun (_x : α -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u3, u2} α γ) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (Prefunctor.comp.{0, succ u3, 0, succ u1, 0, succ u2} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (α -> β) (fun (_x : α -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : α -> β) => Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β)) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (Quiver.SingleObj.toPrefunctor.{u3, u1} α β) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (β -> γ) (fun (_x : β -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β -> γ) => Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u2} β γ) g))
 Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_compₓ'. -/
 theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
     toPrefunctor (g ∘ f) = toPrefunctor f ⋙q toPrefunctor g :=
@@ -130,7 +130,7 @@ theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (g : Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)), Eq.{max (succ u1) (succ u3)} (α -> γ) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (fun (_x : Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) => (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> α -> γ) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) f g)) (Function.comp.{succ u1, succ u2, succ u3} α β γ (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (fun (_x : Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) => (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> β -> γ) (Equiv.hasCoeToFun.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (Equiv.symm.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ)) g) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (fun (_x : Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) => (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) -> α -> β) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β)) f))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} (f : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (g : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u3, u1} α γ)) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (Function.comp.{succ u3, succ u2, succ u1} α β γ (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => β -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Equiv.symm.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (β -> γ) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u1} β γ)) g) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (fun (_x : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u3, u2} α β)) f))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} (f : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (g : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u3, u1} α γ)) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (Function.comp.{succ u3, succ u2, succ u1} α β γ (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => β -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Equiv.symm.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (β -> γ) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u1} β γ)) g) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (fun (_x : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u3, u2} α β)) f))
 Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_symm_comp Quiver.SingleObj.toPrefunctor_symm_compₓ'. -/
 @[simp]
 theorem toPrefunctor_symm_comp (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :
Diff
@@ -119,7 +119,7 @@ theorem toPrefunctor_symm_id : toPrefunctor.symm (𝟭q (SingleObj α)) = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : α -> β) (g : β -> γ), Eq.{max 1 (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (α -> γ) -> (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ) (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (fun (_x : Equiv.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) => (α -> β) -> (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Equiv.hasCoeToFun.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β))) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β) f) (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (fun (_x : Equiv.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) => (β -> γ) -> (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ))) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ) g))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} (f : α -> β) (g : β -> γ), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (α -> γ) (fun (_x : α -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u3, u2} α γ) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (Prefunctor.comp.{0, succ u3, 0, succ u1, 0, succ u2} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (α -> β) (fun (_x : α -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : α -> β) => Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β)) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (Quiver.SingleObj.toPrefunctor.{u3, u1} α β) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (β -> γ) (fun (_x : β -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : β -> γ) => Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u2} β γ) g))
+  forall {α : Type.{u3}} {β : Type.{u1}} {γ : Type.{u2}} (f : α -> β) (g : β -> γ), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (α -> γ) (fun (_x : α -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> γ) => Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u3, u2} α γ) (Function.comp.{succ u3, succ u1, succ u2} α β γ g f)) (Prefunctor.comp.{0, succ u3, 0, succ u1, 0, succ u2} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u3) (succ u1), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (α -> β) (fun (_x : α -> β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : α -> β) => Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β)) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β))) (Quiver.SingleObj.toPrefunctor.{u3, u1} α β) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (β -> γ) (fun (_x : β -> γ) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β -> γ) => Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (β -> γ) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} β) (Quiver.SingleObj.instQuiverSingleObj.{u1} β) (Quiver.SingleObj.{u2} γ) (Quiver.SingleObj.instQuiverSingleObj.{u2} γ))) (Quiver.SingleObj.toPrefunctor.{u1, u2} β γ) g))
 Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_comp Quiver.SingleObj.toPrefunctor_compₓ'. -/
 theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
     toPrefunctor (g ∘ f) = toPrefunctor f ⋙q toPrefunctor g :=
@@ -130,7 +130,7 @@ theorem toPrefunctor_comp (f : α → β) (g : β → γ) :
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} (f : Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (g : Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)), Eq.{max (succ u1) (succ u3)} (α -> γ) (coeFn.{max 1 (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (fun (_x : Equiv.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) => (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> α -> γ) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max 1 (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u1, succ u3, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u1, u3} α γ)) (Prefunctor.comp.{0, succ u1, 0, succ u2, 0, succ u3} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ) f g)) (Function.comp.{succ u1, succ u2, succ u3} α β γ (coeFn.{max 1 (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (fun (_x : Equiv.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) => (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) -> β -> γ) (Equiv.hasCoeToFun.{max 1 (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (β -> γ)) (Equiv.symm.{max (succ u2) (succ u3), max 1 (succ u2) (succ u3)} (β -> γ) (Prefunctor.{succ u2, succ u3, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β) (Quiver.SingleObj.{u3} γ) (Quiver.SingleObj.quiver.{u3} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u3} β γ)) g) (coeFn.{max 1 (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (fun (_x : Equiv.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) => (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) -> α -> β) (Equiv.hasCoeToFun.{max 1 (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u1) (succ u2), max 1 (succ u1) (succ u2)} (α -> β) (Prefunctor.{succ u1, succ u2, 0, 0} (Quiver.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.quiver.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u1, u2} α β)) f))
 but is expected to have type
-  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} (f : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (g : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u3, u1} α γ)) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (Function.comp.{succ u3, succ u2, succ u1} α β γ (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => β -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Equiv.symm.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (β -> γ) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u1} β γ)) g) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (fun (_x : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u3, u2} α β)) f))
+  forall {α : Type.{u3}} {β : Type.{u2}} {γ : Type.{u1}} (f : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (g : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), max (succ u1) (succ u3)} (Equiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => α -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (α -> γ)) (Equiv.symm.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (α -> γ) (Prefunctor.{succ u3, succ u1, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u3, u1} α γ)) (Prefunctor.comp.{0, succ u3, 0, succ u2, 0, succ u1} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ) f g)) (Function.comp.{succ u3, succ u2, succ u1} α β γ (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (Equiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (fun (_x : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) => β -> γ) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (β -> γ)) (Equiv.symm.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (β -> γ) (Prefunctor.{succ u2, succ u1, 0, 0} (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β) (Quiver.SingleObj.{u1} γ) (Quiver.SingleObj.instQuiverSingleObj.{u1} γ)) (Quiver.SingleObj.toPrefunctor.{u2, u1} β γ)) g) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), max (succ u2) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (fun (_x : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) => α -> β) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (α -> β)) (Equiv.symm.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (α -> β) (Prefunctor.{succ u3, succ u2, 0, 0} (Quiver.SingleObj.{u3} α) (Quiver.SingleObj.instQuiverSingleObj.{u3} α) (Quiver.SingleObj.{u2} β) (Quiver.SingleObj.instQuiverSingleObj.{u2} β)) (Quiver.SingleObj.toPrefunctor.{u3, u2} α β)) f))
 Case conversion may be inaccurate. Consider using '#align quiver.single_obj.to_prefunctor_symm_comp Quiver.SingleObj.toPrefunctor_symm_compₓ'. -/
 @[simp]
 theorem toPrefunctor_symm_comp (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :

Changes in mathlib4

mathlib3
mathlib4
chore: remove autoImplicit from more files (#11798)

and reduce its scope in a few other instances. Mostly in CategoryTheory and Data this time; some Combinatorics also.

Co-authored-by: Richard Osborn <richardosborn@mac.com>

Diff
@@ -23,9 +23,6 @@ More generally, a list of elements of `a` can be reinterpreted as a path from `s
 itself using `pathEquivList`.
 -/
 
-set_option autoImplicit true
-
-
 namespace Quiver
 
 /-- Type tag on `Unit` used to define single-object quivers. -/
@@ -36,7 +33,7 @@ def SingleObj (_ : Type*) : Type :=
 #align quiver.single_obj Quiver.SingleObj
 
 -- Porting note: `deriving` from above has been moved to below.
-instance : Unique (SingleObj α) where
+instance {α : Type*} : Unique (SingleObj α) where
   default := ⟨⟩
   uniq := fun _ => rfl
 
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -23,6 +23,8 @@ More generally, a list of elements of `a` can be reinterpreted as a path from `s
 itself using `pathEquivList`.
 -/
 
+set_option autoImplicit true
+
 
 namespace Quiver
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -29,7 +29,7 @@ namespace Quiver
 /-- Type tag on `Unit` used to define single-object quivers. -/
 -- Porting note: Removed `deriving Unique`.
 @[nolint unusedArguments]
-def SingleObj (_ : Type _) : Type :=
+def SingleObj (_ : Type*) : Type :=
   Unit
 #align quiver.single_obj Quiver.SingleObj
 
@@ -40,7 +40,7 @@ instance : Unique (SingleObj α) where
 
 namespace SingleObj
 
-variable (α β γ : Type _)
+variable (α β γ : Type*)
 
 instance : Quiver (SingleObj α) :=
   ⟨fun _ _ => α⟩
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2023 Antoine Labelle. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Antoine Labelle
-
-! This file was ported from Lean 3 source module combinatorics.quiver.single_obj
-! leanprover-community/mathlib commit 509de852e1de55e1efa8eacfa11df0823f26f226
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.Quiver.Cast
 import Mathlib.Combinatorics.Quiver.Symmetric
 
+#align_import combinatorics.quiver.single_obj from "leanprover-community/mathlib"@"509de852e1de55e1efa8eacfa11df0823f26f226"
+
 /-!
 # Single-object quiver
 
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -18,7 +18,7 @@ Single object quiver with a given arrows type.
 
 ## Main definitions
 
-Given a type `α`, `SingleObj α` is the `unit` type, whose single object is called `star α`, with
+Given a type `α`, `SingleObj α` is the `Unit` type, whose single object is called `star α`, with
 `Quiver` structure such that `star α ⟶ star α` is the type `α`.
 An element `x : α` can be reinterpreted as an element of `star α ⟶ star α` using
 `toHom`.
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -146,7 +146,6 @@ theorem pathToList_listToPath (l : List α) : pathToList (listToPath l) = l := b
   induction' l with a l ih
   · rfl
   · change a :: pathToList (listToPath l) = a :: l; rw [ih]
-
 #align quiver.single_obj.list_to_path_to_list Quiver.SingleObj.pathToList_listToPath
 
 /-- Paths in `SingleObj α` quiver correspond to lists of elements of type `α`. -/
chore: tidy various files (#2251)
Diff
@@ -30,7 +30,7 @@ itself using `pathEquivList`.
 namespace Quiver
 
 /-- Type tag on `Unit` used to define single-object quivers. -/
--- Porting note: Removed.
+-- Porting note: Removed `deriving Unique`.
 @[nolint unusedArguments]
 def SingleObj (_ : Type _) : Type :=
   Unit
@@ -70,8 +70,7 @@ def hasReverse (rev : α → α) : HasReverse (SingleObj α) := ⟨rev⟩
 /-- Equip `SingleObj α` with an involutive reverse operation. -/
 @[reducible]
 def hasInvolutiveReverse (rev : α → α) (h : Function.Involutive rev) :
-    HasInvolutiveReverse (SingleObj α)
-    where
+    HasInvolutiveReverse (SingleObj α) where
   toHasReverse := hasReverse rev
   inv' := h
 #align quiver.single_obj.has_involutive_reverse Quiver.SingleObj.hasInvolutiveReverse
@@ -88,8 +87,7 @@ def toHom : α ≃ (star α ⟶ star α) :=
 arrows types.
 -/
 @[simps]
-def toPrefunctor : (α → β) ≃ SingleObj α ⥤q SingleObj β
-    where
+def toPrefunctor : (α → β) ≃ SingleObj α ⥤q SingleObj β where
   toFun f := ⟨id, f⟩
   invFun f a := f.map (toHom a)
   left_inv _ := rfl
@@ -138,18 +136,16 @@ def listToPath : List α → Path (star α) (star α)
 #align quiver.single_obj.list_to_path Quiver.SingleObj.listToPath
 
 theorem listToPath_pathToList {x : SingleObj α} (p : Path (star α) x) :
-    listToPath (pathToList p) = p.cast rfl ext :=
-  by
+    listToPath (pathToList p) = p.cast rfl ext := by
   induction' p with y z p a ih
-  rfl
-  dsimp at *; rw [ih]
+  · rfl
+  · dsimp at *; rw [ih]
 #align quiver.single_obj.path_to_list_to_path Quiver.SingleObj.listToPath_pathToList
 
-theorem pathToList_listToPath (l : List α) : pathToList (listToPath l) = l :=
-  by
+theorem pathToList_listToPath (l : List α) : pathToList (listToPath l) = l := by
   induction' l with a l ih
-  rfl
-  change a :: pathToList (listToPath l) = a :: l; rw [ih]
+  · rfl
+  · change a :: pathToList (listToPath l) = a :: l; rw [ih]
 
 #align quiver.single_obj.list_to_path_to_list Quiver.SingleObj.pathToList_listToPath
 
feat: require @[simps!] if simps runs in expensive mode (#1885)
  • This does not change the behavior of simps, just raises a linter error if you run simps in a more expensive mode without writing !.
  • Fixed some incorrect occurrences of to_additive, simps. Will do that systematically in future PR.
  • Fix port of OmegaCompletePartialOrder.ContinuousHom.ofMono a bit

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -77,7 +77,7 @@ def hasInvolutiveReverse (rev : α → α) (h : Function.Involutive rev) :
 #align quiver.single_obj.has_involutive_reverse Quiver.SingleObj.hasInvolutiveReverse
 
 /-- The type of arrows from `star α` to itself is equivalent to the original type `α`. -/
-@[simps]
+@[simps!]
 def toHom : α ≃ (star α ⟶ star α) :=
   Equiv.refl _
 #align quiver.single_obj.to_hom Quiver.SingleObj.toHom
chore: add missing #align statements (#1902)

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

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -81,6 +81,8 @@ def hasInvolutiveReverse (rev : α → α) (h : Function.Involutive rev) :
 def toHom : α ≃ (star α ⟶ star α) :=
   Equiv.refl _
 #align quiver.single_obj.to_hom Quiver.SingleObj.toHom
+#align quiver.single_obj.to_hom_apply Quiver.SingleObj.toHom_apply
+#align quiver.single_obj.to_hom_symm_apply Quiver.SingleObj.toHom_symm_apply
 
 /-- Prefunctors between two `SingleObj` quivers correspond to functions between the corresponding
 arrows types.
@@ -92,6 +94,9 @@ def toPrefunctor : (α → β) ≃ SingleObj α ⥤q SingleObj β
   invFun f a := f.map (toHom a)
   left_inv _ := rfl
   right_inv _ := rfl
+#align quiver.single_obj.to_prefunctor_symm_apply Quiver.SingleObj.toPrefunctor_symm_apply
+#align quiver.single_obj.to_prefunctor_apply_map Quiver.SingleObj.toPrefunctor_apply_map
+#align quiver.single_obj.to_prefunctor_apply_obj Quiver.SingleObj.toPrefunctor_apply_obj
 
 #align quiver.single_obj.to_prefunctor Quiver.SingleObj.toPrefunctor
 
feat: port combinatorics.quiver.single obj (#1686)

Co-authored-by: qawbecrdtey <qawbecrdtey@naver.com>

Dependencies 18

19 files ported (100.0%)
6119 lines ported (100.0%)

All dependencies are ported!