combinatorics.quiver.single_obj
⟷
Mathlib.Combinatorics.Quiver.SingleObj
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 γ) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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 γ) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -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 γ) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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
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:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s 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.
@@ -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
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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 _ _ => α⟩
@@ -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
fix-comments.py
on all files.@@ -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`.
This PR fixes two things:
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.#align
statements. (This was needed for a script I wrote for #3630.)@@ -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 `α`. -/
@@ -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
simps
, just raises a linter error if you run simps
in a more expensive mode without writing !
.to_additive, simps
. Will do that systematically in future PR.OmegaCompletePartialOrder.ContinuousHom.ofMono
a bitCo-authored-by: Yury G. Kudryashov <urkud@urkud.name>
@@ -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
This PR is the result of a slight variant on the following "algorithm"
_
and make all uppercase letters into lowercase_
and make all uppercase letters into lowercase(original_lean3_name, OriginalLean4Name)
#align
statement just before the next empty line#align
statement to have been inserted too early)@@ -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
All dependencies are ported!