category_theory.limits.constructions.limits_of_products_and_equalizers
⟷
Mathlib.CategoryTheory.Limits.Constructions.LimitsOfProductsAndEqualizers
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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,16 +3,16 @@ Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-/
-import Mathbin.Data.Fintype.Prod
-import Mathbin.Data.Fintype.Sigma
-import Mathbin.CategoryTheory.Limits.Shapes.Equalizers
-import Mathbin.CategoryTheory.Limits.Shapes.FiniteProducts
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Products
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Equalizers
-import Mathbin.CategoryTheory.Limits.Preserves.Finite
-import Mathbin.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts
-import Mathbin.CategoryTheory.Limits.Constructions.Equalizers
-import Mathbin.CategoryTheory.Limits.Constructions.BinaryProducts
+import Data.Fintype.Prod
+import Data.Fintype.Sigma
+import CategoryTheory.Limits.Shapes.Equalizers
+import CategoryTheory.Limits.Shapes.FiniteProducts
+import CategoryTheory.Limits.Preserves.Shapes.Products
+import CategoryTheory.Limits.Preserves.Shapes.Equalizers
+import CategoryTheory.Limits.Preserves.Finite
+import CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts
+import CategoryTheory.Limits.Constructions.Equalizers
+import CategoryTheory.Limits.Constructions.BinaryProducts
#align_import category_theory.limits.constructions.limits_of_products_and_equalizers from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.limits.constructions.limits_of_products_and_equalizers
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Fintype.Prod
import Mathbin.Data.Fintype.Sigma
@@ -19,6 +14,8 @@ import Mathbin.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProduct
import Mathbin.CategoryTheory.Limits.Constructions.Equalizers
import Mathbin.CategoryTheory.Limits.Constructions.BinaryProducts
+#align_import category_theory.limits.constructions.limits_of_products_and_equalizers from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
+
/-!
# Constructing limits from products and equalizers.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -58,8 +58,7 @@ variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σ p : J × J, p.1
(hs : ∀ f : Σ p : J × J, p.1 ⟶ p.2, s ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.1⟩ ≫ F.map f.2)
(ht : ∀ f : Σ p : J × J, p.1 ⟶ p.2, t ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.2⟩) (i : Fork s t)
-include hs ht
-
+#print CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit /-
/--
(Implementation) Given the appropriate product and equalizer cones, build the cone for `F` which is
limiting if the given cones are also.
@@ -73,10 +72,12 @@ def buildLimit : Cone F where
dsimp
rw [category.id_comp, category.assoc, ← hs ⟨⟨_, _⟩, f⟩, i.condition_assoc, ht] }
#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit
+-/
variable {i}
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
+#print CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit /-
/--
(Implementation) Show the cone constructed in `build_limit` is limiting, provided the cones used in
its construction are.
@@ -95,11 +96,13 @@ def buildIsLimit (t₁ : IsLimit c₁) (t₂ : IsLimit c₂) (hi : IsLimit i) :
simp [hs, ht]
uniq q m w := hi.hom_ext (i.equalizer_ext (t₁.hom_ext fun j => by cases j; simpa using w j))
#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit
+-/
end HasLimitOfHasProductsOfHasEqualizers
open HasLimitOfHasProductsOfHasEqualizers
+#print CategoryTheory.Limits.limitConeOfEqualizerAndProduct /-
/-- Given the existence of the appropriate (possibly finite) products and equalizers,
we can construct a limit cone for `F`.
(This assumes the existence of all equalizers, which is technically stronger than needed.)
@@ -113,7 +116,9 @@ noncomputable def limitConeOfEqualizerAndProduct (F : J ⥤ C) [HasLimit (Discre
(Pi.lift fun f => limit.π (Discrete.functor F.obj) ⟨f.1.2⟩) (by simp) (by simp)
(limit.isLimit _) (limit.isLimit _) (limit.isLimit _)
#align category_theory.limits.limit_cone_of_equalizer_and_product CategoryTheory.Limits.limitConeOfEqualizerAndProduct
+-/
+#print CategoryTheory.Limits.hasLimit_of_equalizer_and_product /-
/--
Given the existence of the appropriate (possibly finite) products and equalizers, we know a limit of
`F` exists.
@@ -124,17 +129,22 @@ theorem hasLimit_of_equalizer_and_product (F : J ⥤ C) [HasLimit (Discrete.func
HasLimit F :=
HasLimit.mk (limitConeOfEqualizerAndProduct F)
#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_product
+-/
+#print CategoryTheory.Limits.limitSubobjectProduct /-
/-- A limit can be realised as a subobject of a product. -/
noncomputable def limitSubobjectProduct [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
limit F ⟶ ∏ fun j => F.obj j :=
(limit.isoLimitCone (limitConeOfEqualizerAndProduct F)).hom ≫ equalizer.ι _ _
#align category_theory.limits.limit_subobject_product CategoryTheory.Limits.limitSubobjectProduct
+-/
+#print CategoryTheory.Limits.limitSubobjectProduct_mono /-
instance limitSubobjectProduct_mono [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
Mono (limitSubobjectProduct F) :=
mono_comp _ _
#align category_theory.limits.limit_subobject_product_mono CategoryTheory.Limits.limitSubobjectProduct_mono
+-/
#print CategoryTheory.Limits.has_limits_of_hasEqualizers_and_products /-
/-- Any category with products and equalizers has all limits.
@@ -212,12 +222,14 @@ def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimitsOfShape J G
-- See note [dsimp, simp].
end
+#print CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts /-
/-- If G preserves equalizers and finite products, it preserves finite limits. -/
def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C]
[HasFiniteProducts C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[∀ (J : Type) [Fintype J], PreservesLimitsOfShape (Discrete J) G] : PreservesFiniteLimits G :=
⟨fun _ _ _ => preserves_limit_of_preserves_equalizers_and_product G⟩
#align category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts
+-/
#print CategoryTheory.Limits.preservesLimitsOfPreservesEqualizersAndProducts /-
/-- If G preserves equalizers and products, it preserves all limits. -/
@@ -268,8 +280,7 @@ variable {F : J ⥤ C} {c₁ : Cofan fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj
(hs : ∀ f : Σ p : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ s = F.map f.2 ≫ c₂.ι.app ⟨f.1.2⟩)
(ht : ∀ f : Σ p : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ t = c₂.ι.app ⟨f.1.1⟩) (i : Cofork s t)
-include hs ht
-
+#print CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit /-
/-- (Implementation) Given the appropriate coproduct and coequalizer cocones,
build the cocone for `F` which is colimiting if the given cocones are also.
-/
@@ -282,10 +293,12 @@ def buildColimit : Cocone F where
dsimp
rw [category.comp_id, ← reassoc_of (hs ⟨⟨_, _⟩, f⟩), i.condition, ← category.assoc, ht] }
#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit
+-/
variable {i}
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
+#print CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit /-
/-- (Implementation) Show the cocone constructed in `build_colimit` is colimiting,
provided the cocones used in its construction are.
-/
@@ -303,11 +316,13 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
simp [reassoc_of hs, reassoc_of ht]
uniq q m w := hi.hom_ext (i.coequalizer_ext (t₂.hom_ext fun j => by cases j; simpa using w j))
#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit
+-/
end HasColimitOfHasCoproductsOfHasCoequalizers
open HasColimitOfHasCoproductsOfHasCoequalizers
+#print CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct /-
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we can construct a colimit cocone for `F`.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -323,7 +338,9 @@ noncomputable def colimitCoconeOfCoequalizerAndCoproduct (F : J ⥤ C)
(Sigma.desc fun f => colimit.ι (Discrete.functor F.obj) ⟨f.1.1⟩) (by simp) (by simp)
(colimit.isColimit _) (colimit.isColimit _) (colimit.isColimit _)
#align category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct
+-/
+#print CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct /-
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we know a colimit of `F` exists.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -333,17 +350,22 @@ theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discr
[HasCoequalizers C] : HasColimit F :=
HasColimit.mk (colimitCoconeOfCoequalizerAndCoproduct F)
#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct
+-/
+#print CategoryTheory.Limits.colimitQuotientCoproduct /-
/-- A colimit can be realised as a quotient of a coproduct. -/
noncomputable def colimitQuotientCoproduct [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
(∐ fun j => F.obj j) ⟶ colimit F :=
coequalizer.π _ _ ≫ (colimit.isoColimitCocone (colimitCoconeOfCoequalizerAndCoproduct F)).inv
#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproduct
+-/
+#print CategoryTheory.Limits.colimitQuotientCoproduct_epi /-
instance colimitQuotientCoproduct_epi [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
Epi (colimitQuotientCoproduct F) :=
epi_comp _ _
#align category_theory.limits.colimit_quotient_coproduct_epi CategoryTheory.Limits.colimitQuotientCoproduct_epi
+-/
#print CategoryTheory.Limits.has_colimits_of_hasCoequalizers_and_coproducts /-
/-- Any category with coproducts and coequalizers has all colimits.
@@ -421,12 +443,14 @@ def preservesColimitOfPreservesCoequalizersAndCoproduct : PreservesColimitsOfSha
-- See note [dsimp, simp].
end
+#print CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts /-
/-- If G preserves coequalizers and finite coproducts, it preserves finite colimits. -/
def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts [HasCoequalizers C]
[HasFiniteCoproducts C] (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
[∀ (J) [Fintype J], PreservesColimitsOfShape (Discrete.{0} J) G] : PreservesFiniteColimits G :=
⟨fun _ _ _ => preserves_colimit_of_preserves_coequalizers_and_coproduct G⟩
#align category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts
+-/
#print CategoryTheory.Limits.preservesColimitsOfPreservesCoequalizersAndCoproducts /-
/-- If G preserves coequalizers and coproducts, it preserves all colimits. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -53,10 +53,10 @@ variable {J : Type w} [SmallCategory J]
-- We hide the "implementation details" inside a namespace
namespace HasLimitOfHasProductsOfHasEqualizers
-variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.2}
+variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.2}
(s t : c₁.pt ⟶ c₂.pt)
- (hs : ∀ f : Σp : J × J, p.1 ⟶ p.2, s ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.1⟩ ≫ F.map f.2)
- (ht : ∀ f : Σp : J × J, p.1 ⟶ p.2, t ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.2⟩) (i : Fork s t)
+ (hs : ∀ f : Σ p : J × J, p.1 ⟶ p.2, s ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.1⟩ ≫ F.map f.2)
+ (ht : ∀ f : Σ p : J × J, p.1 ⟶ p.2, t ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.2⟩) (i : Fork s t)
include hs ht
@@ -105,7 +105,7 @@ we can construct a limit cone for `F`.
(This assumes the existence of all equalizers, which is technically stronger than needed.)
-/
noncomputable def limitConeOfEqualizerAndProduct (F : J ⥤ C) [HasLimit (Discrete.functor F.obj)]
- [HasLimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.2)] [HasEqualizers C] :
+ [HasLimit (Discrete.functor fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.2)] [HasEqualizers C] :
LimitCone F where
Cone := _
IsLimit :=
@@ -120,7 +120,7 @@ Given the existence of the appropriate (possibly finite) products and equalizers
(This assumes the existence of all equalizers, which is technically stronger than needed.)
-/
theorem hasLimit_of_equalizer_and_product (F : J ⥤ C) [HasLimit (Discrete.functor F.obj)]
- [HasLimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.2)] [HasEqualizers C] :
+ [HasLimit (Discrete.functor fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.2)] [HasEqualizers C] :
HasLimit F :=
HasLimit.mk (limitConeOfEqualizerAndProduct F)
#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_product
@@ -164,19 +164,19 @@ noncomputable section
section
-variable [HasLimitsOfShape (Discrete J) C] [HasLimitsOfShape (Discrete (Σp : J × J, p.1 ⟶ p.2)) C]
+variable [HasLimitsOfShape (Discrete J) C] [HasLimitsOfShape (Discrete (Σ p : J × J, p.1 ⟶ p.2)) C]
[HasEqualizers C]
variable (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[PreservesLimitsOfShape (Discrete.{w} J) G]
- [PreservesLimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) G]
+ [PreservesLimitsOfShape (Discrete.{w} (Σ p : J × J, p.1 ⟶ p.2)) G]
#print CategoryTheory.Limits.preservesLimitOfPreservesEqualizersAndProduct /-
/-- If a functor preserves equalizers and the appropriate products, it preserves limits. -/
def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimitsOfShape J G
where PreservesLimit K := by
let P := ∏ K.obj
- let Q := ∏ fun f : Σp : J × J, p.fst ⟶ p.snd => K.obj f.1.2
+ let Q := ∏ fun f : Σ p : J × J, p.fst ⟶ p.snd => K.obj f.1.2
let s : P ⟶ Q := pi.lift fun f => limit.π (discrete.functor K.obj) ⟨_⟩ ≫ K.map f.2
let t : P ⟶ Q := pi.lift fun f => limit.π (discrete.functor K.obj) ⟨f.1.2⟩
let I := equalizer s t
@@ -263,10 +263,10 @@ We now dualize the above constructions, resorting to copy-paste.
-- We hide the "implementation details" inside a namespace
namespace HasColimitOfHasCoproductsOfHasCoequalizers
-variable {F : J ⥤ C} {c₁ : Cofan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.1} {c₂ : Cofan F.obj}
+variable {F : J ⥤ C} {c₁ : Cofan fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.1} {c₂ : Cofan F.obj}
(s t : c₁.pt ⟶ c₂.pt)
- (hs : ∀ f : Σp : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ s = F.map f.2 ≫ c₂.ι.app ⟨f.1.2⟩)
- (ht : ∀ f : Σp : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ t = c₂.ι.app ⟨f.1.1⟩) (i : Cofork s t)
+ (hs : ∀ f : Σ p : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ s = F.map f.2 ≫ c₂.ι.app ⟨f.1.2⟩)
+ (ht : ∀ f : Σ p : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ t = c₂.ι.app ⟨f.1.1⟩) (i : Cofork s t)
include hs ht
@@ -314,7 +314,7 @@ we can construct a colimit cocone for `F`.
-/
noncomputable def colimitCoconeOfCoequalizerAndCoproduct (F : J ⥤ C)
[HasColimit (Discrete.functor F.obj)]
- [HasColimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.1)]
+ [HasColimit (Discrete.functor fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.1)]
[HasCoequalizers C] : ColimitCocone F
where
Cocone := _
@@ -329,7 +329,7 @@ we know a colimit of `F` exists.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
-/
theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discrete.functor F.obj)]
- [HasColimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.1)]
+ [HasColimit (Discrete.functor fun f : Σ p : J × J, p.1 ⟶ p.2 => F.obj f.1.1)]
[HasCoequalizers C] : HasColimit F :=
HasColimit.mk (colimitCoconeOfCoequalizerAndCoproduct F)
#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct
@@ -374,18 +374,18 @@ noncomputable section
section
variable [HasColimitsOfShape (Discrete.{w} J) C]
- [HasColimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) C] [HasCoequalizers C]
+ [HasColimitsOfShape (Discrete.{w} (Σ p : J × J, p.1 ⟶ p.2)) C] [HasCoequalizers C]
variable (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
[PreservesColimitsOfShape (Discrete.{w} J) G]
- [PreservesColimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) G]
+ [PreservesColimitsOfShape (Discrete.{w} (Σ p : J × J, p.1 ⟶ p.2)) G]
#print CategoryTheory.Limits.preservesColimitOfPreservesCoequalizersAndCoproduct /-
/-- If a functor preserves coequalizers and the appropriate coproducts, it preserves colimits. -/
def preservesColimitOfPreservesCoequalizersAndCoproduct : PreservesColimitsOfShape J G
where PreservesColimit K := by
let P := ∐ K.obj
- let Q := ∐ fun f : Σp : J × J, p.fst ⟶ p.snd => K.obj f.1.1
+ let Q := ∐ fun f : Σ p : J × J, p.fst ⟶ p.snd => K.obj f.1.1
let s : Q ⟶ P := sigma.desc fun f => K.map f.2 ≫ colimit.ι (discrete.functor K.obj) ⟨_⟩
let t : Q ⟶ P := sigma.desc fun f => colimit.ι (discrete.functor K.obj) ⟨f.1.1⟩
let I := coequalizer s t
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -60,9 +60,6 @@ variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σp : J × J, p.1
include hs ht
-/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimitₓ'. -/
/--
(Implementation) Given the appropriate product and equalizer cones, build the cone for `F` which is
limiting if the given cones are also.
@@ -79,9 +76,6 @@ def buildLimit : Cone F where
variable {i}
-/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/--
(Implementation) Show the cone constructed in `build_limit` is limiting, provided the cones used in
@@ -106,12 +100,6 @@ end HasLimitOfHasProductsOfHasEqualizers
open HasLimitOfHasProductsOfHasEqualizers
-/- warning: category_theory.limits.limit_cone_of_equalizer_and_product -> CategoryTheory.Limits.limitConeOfEqualizerAndProduct is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.LimitCone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.LimitCone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_cone_of_equalizer_and_product CategoryTheory.Limits.limitConeOfEqualizerAndProductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) products and equalizers,
we can construct a limit cone for `F`.
(This assumes the existence of all equalizers, which is technically stronger than needed.)
@@ -126,12 +114,6 @@ noncomputable def limitConeOfEqualizerAndProduct (F : J ⥤ C) [HasLimit (Discre
(limit.isLimit _) (limit.isLimit _) (limit.isLimit _)
#align category_theory.limits.limit_cone_of_equalizer_and_product CategoryTheory.Limits.limitConeOfEqualizerAndProduct
-/- warning: category_theory.limits.has_limit_of_equalizer_and_product -> CategoryTheory.Limits.hasLimit_of_equalizer_and_product is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_productₓ'. -/
/--
Given the existence of the appropriate (possibly finite) products and equalizers, we know a limit of
`F` exists.
@@ -143,24 +125,12 @@ theorem hasLimit_of_equalizer_and_product (F : J ⥤ C) [HasLimit (Discrete.func
HasLimit.mk (limitConeOfEqualizerAndProduct F)
#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_product
-/- warning: category_theory.limits.limit_subobject_product -> CategoryTheory.Limits.limitSubobjectProduct is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.limitSubobjectProduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.limitSubobjectProduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_3) F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_3) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j))))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_subobject_product CategoryTheory.Limits.limitSubobjectProductₓ'. -/
/-- A limit can be realised as a subobject of a product. -/
noncomputable def limitSubobjectProduct [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
limit F ⟶ ∏ fun j => F.obj j :=
(limit.isoLimitCone (limitConeOfEqualizerAndProduct F)).hom ≫ equalizer.ι _ _
#align category_theory.limits.limit_subobject_product CategoryTheory.Limits.limitSubobjectProduct
-/- warning: category_theory.limits.limit_subobject_product_mono -> CategoryTheory.Limits.limitSubobjectProduct_mono is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Mono.{u2, u3} C _inst_1 (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.limitSubobjectProduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.limitSubobjectProduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.limitSubobjectProduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_3 F)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Mono.{u2, u3} C _inst_1 (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_3) F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_3) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.limitSubobjectProduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_3 F)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_subobject_product_mono CategoryTheory.Limits.limitSubobjectProduct_monoₓ'. -/
instance limitSubobjectProduct_mono [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
Mono (limitSubobjectProduct F) :=
mono_comp _ _
@@ -242,12 +212,6 @@ def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimitsOfShape J G
-- See note [dsimp, simp].
end
-/- warning: category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products -> CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteProducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : forall (J : Type) [_inst_8 : Fintype.{0} J], CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 (CategoryTheory.Discrete.{0} J) (CategoryTheory.discreteCategory.{0} J) G], CategoryTheory.Limits.PreservesFiniteLimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteProducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : CategoryTheory.Limits.PreservesFiniteProducts.{u1, u2, u3, u4} C _inst_1 D _inst_3 G], CategoryTheory.Limits.PreservesFiniteLimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProductsₓ'. -/
/-- If G preserves equalizers and finite products, it preserves finite limits. -/
def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C]
[HasFiniteProducts C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
@@ -306,9 +270,6 @@ variable {F : J ⥤ C} {c₁ : Cofan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj
include hs ht
-/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimitₓ'. -/
/-- (Implementation) Given the appropriate coproduct and coequalizer cocones,
build the cocone for `F` which is colimiting if the given cocones are also.
-/
@@ -324,9 +285,6 @@ def buildColimit : Cocone F where
variable {i}
-/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/-- (Implementation) Show the cocone constructed in `build_colimit` is colimiting,
provided the cocones used in its construction are.
@@ -350,12 +308,6 @@ end HasColimitOfHasCoproductsOfHasCoequalizers
open HasColimitOfHasCoproductsOfHasCoequalizers
-/- warning: category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct -> CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.ColimitCocone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.ColimitCocone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we can construct a colimit cocone for `F`.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -372,12 +324,6 @@ noncomputable def colimitCoconeOfCoequalizerAndCoproduct (F : J ⥤ C)
(colimit.isColimit _) (colimit.isColimit _) (colimit.isColimit _)
#align category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct
-/- warning: category_theory.limits.has_colimit_of_coequalizer_and_coproduct -> CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we know a colimit of `F` exists.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -388,24 +334,12 @@ theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discr
HasColimit.mk (colimitCoconeOfCoequalizerAndCoproduct F)
#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct
-/- warning: category_theory.limits.colimit_quotient_coproduct -> CategoryTheory.Limits.colimitQuotientCoproduct is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.colimitQuotientCoproduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.colimitQuotientCoproduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_4) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_4) F))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproductₓ'. -/
/-- A colimit can be realised as a quotient of a coproduct. -/
noncomputable def colimitQuotientCoproduct [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
(∐ fun j => F.obj j) ⟶ colimit F :=
coequalizer.π _ _ ≫ (colimit.isoColimitCocone (colimitCoconeOfCoequalizerAndCoproduct F)).inv
#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproduct
-/- warning: category_theory.limits.colimit_quotient_coproduct_epi -> CategoryTheory.Limits.colimitQuotientCoproduct_epi is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Epi.{u2, u3} C _inst_1 (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.colimitQuotientCoproduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.colimitQuotientCoproduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimitQuotientCoproduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_4 F)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Epi.{u2, u3} C _inst_1 (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_4) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_4) F)) (CategoryTheory.Limits.colimitQuotientCoproduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_4 F)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_quotient_coproduct_epi CategoryTheory.Limits.colimitQuotientCoproduct_epiₓ'. -/
instance colimitQuotientCoproduct_epi [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
Epi (colimitQuotientCoproduct F) :=
epi_comp _ _
@@ -487,12 +421,6 @@ def preservesColimitOfPreservesCoequalizersAndCoproduct : PreservesColimitsOfSha
-- See note [dsimp, simp].
end
-/- warning: category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts -> CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasCoequalizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteCoproducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : forall (J : Type) [_inst_8 : Fintype.{0} J], CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 (CategoryTheory.Discrete.{0} J) (CategoryTheory.discreteCategory.{0} J) G], CategoryTheory.Limits.PreservesFiniteColimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasCoequalizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteCoproducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : CategoryTheory.Limits.PreservesFiniteCoproducts.{u1, u2, u3, u4} C _inst_1 D _inst_3 G], CategoryTheory.Limits.PreservesFiniteColimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproductsₓ'. -/
/-- If G preserves coequalizers and finite coproducts, it preserves finite colimits. -/
def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts [HasCoequalizers C]
[HasFiniteCoproducts C] (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -95,16 +95,11 @@ def buildIsLimit (t₁ : IsLimit c₁) (t₂ : IsLimit c₂) (hi : IsLimit i) :
· refine' t₁.lift (fan.mk _ fun j => _)
apply q.π.app j
· apply t₂.hom_ext
- intro j
+ intro j;
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[]"
simp [hs, ht]
- uniq q m w :=
- hi.hom_ext
- (i.equalizer_ext
- (t₁.hom_ext fun j => by
- cases j
- simpa using w j))
+ uniq q m w := hi.hom_ext (i.equalizer_ext (t₁.hom_ext fun j => by cases j; simpa using w j))
#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit
end HasLimitOfHasProductsOfHasEqualizers
@@ -344,16 +339,11 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
· refine' t₂.desc (cofan.mk _ fun j => _)
apply q.ι.app j
· apply t₁.hom_ext
- intro j
+ intro j;
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[]"
simp [reassoc_of hs, reassoc_of ht]
- uniq q m w :=
- hi.hom_ext
- (i.coequalizer_ext
- (t₂.hom_ext fun j => by
- cases j
- simpa using w j))
+ uniq q m w := hi.hom_ext (i.coequalizer_ext (t₂.hom_ext fun j => by cases j; simpa using w j))
#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit
end HasColimitOfHasCoproductsOfHasCoequalizers
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -61,10 +61,7 @@ variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σp : J × J, p.1
include hs ht
/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) -> (CategoryTheory.Limits.Cone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) -> (CategoryTheory.Limits.Cone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimitₓ'. -/
/--
(Implementation) Given the appropriate product and equalizer cones, build the cone for `F` which is
@@ -83,10 +80,7 @@ def buildLimit : Cone F where
variable {i}
/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t}, (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) -> (CategoryTheory.Limits.IsLimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) i) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t}, (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) -> (CategoryTheory.Limits.IsLimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) i) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/--
@@ -318,10 +312,7 @@ variable {F : J ⥤ C} {c₁ : Cofan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj
include hs ht
/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t) -> (CategoryTheory.Limits.Cocone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂))) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t) -> (CategoryTheory.Limits.Cocone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimitₓ'. -/
/-- (Implementation) Given the appropriate coproduct and coequalizer cocones,
build the cocone for `F` which is colimiting if the given cocones are also.
@@ -339,10 +330,7 @@ def buildColimit : Cocone F where
variable {i}
/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t}, (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) -> (CategoryTheory.Limits.IsColimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t) i) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂))) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t}, (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) -> (CategoryTheory.Limits.IsColimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t) i) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/-- (Implementation) Show the cocone constructed in `build_colimit` is colimiting,
mathlib commit https://github.com/leanprover-community/mathlib/commit/2196ab363eb097c008d4497125e0dde23fb36db2
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
! This file was ported from Lean 3 source module category_theory.limits.constructions.limits_of_products_and_equalizers
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -22,6 +22,9 @@ import Mathbin.CategoryTheory.Limits.Constructions.BinaryProducts
/-!
# Constructing limits from products and equalizers.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
If a category has all products, and all equalizers, then it has all limits.
Similarly, if it has all finite products, and all equalizers, then it has all finite limits.
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -57,6 +57,12 @@ variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σp : J × J, p.1
include hs ht
+/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) -> (CategoryTheory.Limits.Cone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) -> (CategoryTheory.Limits.Cone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimitₓ'. -/
/--
(Implementation) Given the appropriate product and equalizer cones, build the cone for `F` which is
limiting if the given cones are also.
@@ -73,6 +79,12 @@ def buildLimit : Cone F where
variable {i}
+/- warning: category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit -> CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t}, (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) -> (CategoryTheory.Limits.IsLimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) i) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Fan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} {c₂ : CategoryTheory.Limits.Fan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (CategoryTheory.Discrete.as.{u1} J (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f))) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁)) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (CategoryTheory.Limits.Cone.π.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Fork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t}, (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) -> (CategoryTheory.Limits.IsLimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₁) (CategoryTheory.Limits.Cone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₂) s t) i) -> (CategoryTheory.Limits.IsLimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildLimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/--
(Implementation) Show the cone constructed in `build_limit` is limiting, provided the cones used in
@@ -102,6 +114,12 @@ end HasLimitOfHasProductsOfHasEqualizers
open HasLimitOfHasProductsOfHasEqualizers
+/- warning: category_theory.limits.limit_cone_of_equalizer_and_product -> CategoryTheory.Limits.limitConeOfEqualizerAndProduct is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.LimitCone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.LimitCone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_cone_of_equalizer_and_product CategoryTheory.Limits.limitConeOfEqualizerAndProductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) products and equalizers,
we can construct a limit cone for `F`.
(This assumes the existence of all equalizers, which is technically stronger than needed.)
@@ -116,6 +134,12 @@ noncomputable def limitConeOfEqualizerAndProduct (F : J ⥤ C) [HasLimit (Discre
(limit.isLimit _) (limit.isLimit _) (limit.isLimit _)
#align category_theory.limits.limit_cone_of_equalizer_and_product CategoryTheory.Limits.limitConeOfEqualizerAndProduct
+/- warning: category_theory.limits.has_limit_of_equalizer_and_product -> CategoryTheory.Limits.hasLimit_of_equalizer_and_product is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_3 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_4 : CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_5 : CategoryTheory.Limits.HasEqualizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasLimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_productₓ'. -/
/--
Given the existence of the appropriate (possibly finite) products and equalizers, we know a limit of
`F` exists.
@@ -127,17 +151,30 @@ theorem hasLimit_of_equalizer_and_product (F : J ⥤ C) [HasLimit (Discrete.func
HasLimit.mk (limitConeOfEqualizerAndProduct F)
#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_product
+/- warning: category_theory.limits.limit_subobject_product -> CategoryTheory.Limits.limitSubobjectProduct is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.limitSubobjectProduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.limitSubobjectProduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_3) F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_3) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j))))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_subobject_product CategoryTheory.Limits.limitSubobjectProductₓ'. -/
/-- A limit can be realised as a subobject of a product. -/
noncomputable def limitSubobjectProduct [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
limit F ⟶ ∏ fun j => F.obj j :=
(limit.isoLimitCone (limitConeOfEqualizerAndProduct F)).hom ≫ equalizer.ι _ _
#align category_theory.limits.limit_subobject_product CategoryTheory.Limits.limitSubobjectProduct
+/- warning: category_theory.limits.limit_subobject_product_mono -> CategoryTheory.Limits.limitSubobjectProduct_mono is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Mono.{u2, u3} C _inst_1 (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.limitSubobjectProduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.limitSubobjectProduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_3 F)) (CategoryTheory.Limits.limitSubobjectProduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_3 F)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_3 : CategoryTheory.Limits.HasLimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Mono.{u2, u3} C _inst_1 (CategoryTheory.Limits.limit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_3) F)) (CategoryTheory.Limits.piObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_3) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.limitSubobjectProduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_3 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.limit_subobject_product_mono CategoryTheory.Limits.limitSubobjectProduct_monoₓ'. -/
instance limitSubobjectProduct_mono [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
Mono (limitSubobjectProduct F) :=
mono_comp _ _
#align category_theory.limits.limit_subobject_product_mono CategoryTheory.Limits.limitSubobjectProduct_mono
+#print CategoryTheory.Limits.has_limits_of_hasEqualizers_and_products /-
/-- Any category with products and equalizers has all limits.
See <https://stacks.math.columbia.edu/tag/002N>.
@@ -146,7 +183,9 @@ theorem has_limits_of_hasEqualizers_and_products [HasProducts.{w} C] [HasEqualiz
HasLimitsOfSize.{w, w} C :=
{ HasLimitsOfShape := fun J 𝒥 => { HasLimit := fun F => has_limit_of_equalizer_and_product F } }
#align category_theory.limits.has_limits_of_has_equalizers_and_products CategoryTheory.Limits.has_limits_of_hasEqualizers_and_products
+-/
+#print CategoryTheory.Limits.hasFiniteLimits_of_hasEqualizers_and_finite_products /-
/-- Any category with finite products and equalizers has all finite limits.
See <https://stacks.math.columbia.edu/tag/002O>.
@@ -155,6 +194,7 @@ theorem hasFiniteLimits_of_hasEqualizers_and_finite_products [HasFiniteProducts
[HasEqualizers C] : HasFiniteLimits C :=
⟨fun J _ _ => { HasLimit := fun F => has_limit_of_equalizer_and_product F }⟩
#align category_theory.limits.has_finite_limits_of_has_equalizers_and_finite_products CategoryTheory.Limits.hasFiniteLimits_of_hasEqualizers_and_finite_products
+-/
variable {D : Type u₂} [Category.{v₂} D]
@@ -169,6 +209,7 @@ variable (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[PreservesLimitsOfShape (Discrete.{w} J) G]
[PreservesLimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) G]
+#print CategoryTheory.Limits.preservesLimitOfPreservesEqualizersAndProduct /-
/-- If a functor preserves equalizers and the appropriate products, it preserves limits. -/
def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimitsOfShape J G
where PreservesLimit K := by
@@ -204,10 +245,17 @@ def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimitsOfShape J G
dsimp
simp
#align category_theory.limits.preserves_limit_of_preserves_equalizers_and_product CategoryTheory.Limits.preservesLimitOfPreservesEqualizersAndProduct
+-/
-- See note [dsimp, simp].
end
+/- warning: category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products -> CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteProducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : forall (J : Type) [_inst_8 : Fintype.{0} J], CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 (CategoryTheory.Discrete.{0} J) (CategoryTheory.discreteCategory.{0} J) G], CategoryTheory.Limits.PreservesFiniteLimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteProducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesLimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : CategoryTheory.Limits.PreservesFiniteProducts.{u1, u2, u3, u4} C _inst_1 D _inst_3 G], CategoryTheory.Limits.PreservesFiniteLimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProductsₓ'. -/
/-- If G preserves equalizers and finite products, it preserves finite limits. -/
def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C]
[HasFiniteProducts C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
@@ -215,13 +263,16 @@ def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C
⟨fun _ _ _ => preserves_limit_of_preserves_equalizers_and_product G⟩
#align category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts
+#print CategoryTheory.Limits.preservesLimitsOfPreservesEqualizersAndProducts /-
/-- If G preserves equalizers and products, it preserves all limits. -/
def preservesLimitsOfPreservesEqualizersAndProducts [HasEqualizers C] [HasProducts.{w} C]
(G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[∀ J, PreservesLimitsOfShape (Discrete.{w} J) G] : PreservesLimitsOfSize.{w, w} G
where PreservesLimitsOfShape J 𝒥 := preserves_limit_of_preserves_equalizers_and_product G
#align category_theory.limits.preserves_limits_of_preserves_equalizers_and_products CategoryTheory.Limits.preservesLimitsOfPreservesEqualizersAndProducts
+-/
+#print CategoryTheory.Limits.hasFiniteLimits_of_hasTerminal_and_pullbacks /-
theorem hasFiniteLimits_of_hasTerminal_and_pullbacks [HasTerminal C] [HasPullbacks C] :
HasFiniteLimits C :=
@hasFiniteLimits_of_hasEqualizers_and_finite_products _
@@ -230,7 +281,9 @@ theorem hasFiniteLimits_of_hasTerminal_and_pullbacks [HasTerminal C] [HasPullbac
(@hasEqualizers_of_hasPullbacks_and_binary_products _
(hasBinaryProducts_of_hasTerminal_and_pullbacks C) inferInstance)
#align category_theory.limits.has_finite_limits_of_has_terminal_and_pullbacks CategoryTheory.Limits.hasFiniteLimits_of_hasTerminal_and_pullbacks
+-/
+#print CategoryTheory.Limits.preservesFiniteLimitsOfPreservesTerminalAndPullbacks /-
/-- If G preserves terminal objects and pullbacks, it preserves all finite limits. -/
def preservesFiniteLimitsOfPreservesTerminalAndPullbacks [HasTerminal C] [HasPullbacks C]
(G : C ⥤ D) [PreservesLimitsOfShape (Discrete.{0} PEmpty) G]
@@ -244,6 +297,7 @@ def preservesFiniteLimitsOfPreservesTerminalAndPullbacks [HasTerminal C] [HasPul
(preserves_equalizers_of_preserves_pullbacks_and_binary_products G)
(preserves_finite_products_of_preserves_binary_and_terminal G)
#align category_theory.limits.preserves_finite_limits_of_preserves_terminal_and_pullbacks CategoryTheory.Limits.preservesFiniteLimitsOfPreservesTerminalAndPullbacks
+-/
/-!
We now dualize the above constructions, resorting to copy-paste.
@@ -260,6 +314,12 @@ variable {F : J ⥤ C} {c₁ : Cofan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj
include hs ht
+/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t) -> (CategoryTheory.Limits.Cocone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)), (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂))) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) -> (forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) -> (CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t) -> (CategoryTheory.Limits.Cocone.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimitₓ'. -/
/-- (Implementation) Given the appropriate coproduct and coequalizer cocones,
build the cocone for `F` which is colimiting if the given cocones are also.
-/
@@ -275,6 +335,12 @@ def buildColimit : Cocone F where
variable {i}
+/- warning: category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit -> CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Functor.map.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) (CategoryTheory.Discrete.as.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)))) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Functor.obj.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) (CategoryTheory.Functor.obj.{u2, max u1 u2, u3, max u1 u2 u1 u3} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t}, (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) -> (CategoryTheory.Limits.IsColimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)) c₂) s t) i) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1} {c₁ : CategoryTheory.Limits.Cofan.{u1, u2, u3} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) C _inst_1 (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))} {c₂ : CategoryTheory.Limits.Cofan.{u1, u2, u3} J C _inst_1 (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))} (s : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (t : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (hs : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) s) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂))) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.map.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (Sigma.snd.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.snd.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))))) (ht : forall (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (Prefunctor.obj.{succ u1, succ u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))))) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁))) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Discrete.mk.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) f)) t) (CategoryTheory.NatTrans.app.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u3, max (max u1 u2) u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u3, max (max u1 u3) u2} C _inst_1 (CategoryTheory.Functor.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.category.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1) (CategoryTheory.Functor.const.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂)) (CategoryTheory.Limits.Cocone.ι.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) (CategoryTheory.Discrete.mk.{u1} J (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))) {i : CategoryTheory.Limits.Cofork.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t}, (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) -> (CategoryTheory.Limits.IsColimit.{0, u2, 0, u3} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory C _inst_1 (CategoryTheory.Limits.parallelPair.{u2, u3} C _inst_1 (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f)))) c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u2, u1, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))) c₂) s t) i) -> (CategoryTheory.Limits.IsColimit.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit.{u1, u2, u3} C _inst_1 J _inst_2 F c₁ c₂ s t hs ht i))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimitₓ'. -/
/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/-- (Implementation) Show the cocone constructed in `build_colimit` is colimiting,
provided the cocones used in its construction are.
@@ -303,6 +369,12 @@ end HasColimitOfHasCoproductsOfHasCoequalizers
open HasColimitOfHasCoproductsOfHasCoequalizers
+/- warning: category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct -> CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.ColimitCocone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.ColimitCocone.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we can construct a colimit cocone for `F`.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -319,6 +391,12 @@ noncomputable def colimitCoconeOfCoequalizerAndCoproduct (F : J ⥤ C)
(colimit.isColimit _) (colimit.isColimit _) (colimit.isColimit _)
#align category_theory.limits.colimit_cocone_of_coequalizer_and_coproduct CategoryTheory.Limits.colimitCoconeOfCoequalizerAndCoproduct
+/- warning: category_theory.limits.has_colimit_of_coequalizer_and_coproduct -> CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1) [_inst_4 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F)))] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} (CategoryTheory.Discrete.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) (CategoryTheory.discreteCategory.{u1} (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)))) C _inst_1 (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 (Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) (fun (f : Sigma.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p))) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) (Prod.fst.{u1, u1} J J (Sigma.fst.{u1, u1} (Prod.{u1, u1} J J) (fun (p : Prod.{u1, u1} J J) => Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) (Prod.fst.{u1, u1} J J p) (Prod.snd.{u1, u1} J J p)) f))))] [_inst_6 : CategoryTheory.Limits.HasCoequalizers.{u2, u3} C _inst_1], CategoryTheory.Limits.HasColimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproductₓ'. -/
/-- Given the existence of the appropriate (possibly finite) coproducts and coequalizers,
we know a colimit of `F` exists.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
@@ -329,17 +407,30 @@ theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discr
HasColimit.mk (colimitCoconeOfCoequalizerAndCoproduct F)
#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct
+/- warning: category_theory.limits.colimit_quotient_coproduct -> CategoryTheory.Limits.colimitQuotientCoproduct is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.colimitQuotientCoproduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.colimitQuotientCoproduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_4) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_4) F))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproductₓ'. -/
/-- A colimit can be realised as a quotient of a coproduct. -/
noncomputable def colimitQuotientCoproduct [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
(∐ fun j => F.obj j) ⟶ colimit F :=
coequalizer.π _ _ ≫ (colimit.isoColimitCocone (colimitCoconeOfCoequalizerAndCoproduct F)).inv
#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproduct
+/- warning: category_theory.limits.colimit_quotient_coproduct_epi -> CategoryTheory.Limits.colimitQuotientCoproduct_epi is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Epi.{u2, u3} C _inst_1 (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => CategoryTheory.Functor.obj.{u1, u2, u1, u3} J _inst_2 C _inst_1 F j) (CategoryTheory.Limits.colimitQuotientCoproduct._proof_1.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.colimitQuotientCoproduct._proof_2.{u3, u2, u1} C _inst_1 J _inst_2 _inst_4 F)) (CategoryTheory.Limits.colimitQuotientCoproduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_4 F)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : Type.{u1}} [_inst_2 : CategoryTheory.SmallCategory.{u1} J] [_inst_4 : CategoryTheory.Limits.HasColimitsOfSize.{u1, u1, u2, u3} C _inst_1] (F : CategoryTheory.Functor.{u1, u2, u1, u3} J _inst_2 C _inst_1), CategoryTheory.Epi.{u2, u3} C _inst_1 (CategoryTheory.Limits.sigmaObj.{u1, u2, u3} J C _inst_1 (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j) (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 (CategoryTheory.Discrete.{u1} J) (CategoryTheory.discreteCategory.{u1} J) _inst_4) (CategoryTheory.Discrete.functor.{u2, u1, u3} C _inst_1 J (fun (j : J) => Prefunctor.obj.{succ u1, succ u2, u1, u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u1, u3} J _inst_2 C _inst_1 F) j)))) (CategoryTheory.Limits.colimit.{u1, u1, u2, u3} J _inst_2 C _inst_1 F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u2, u3} C _inst_1 J _inst_2 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u2, u3} C _inst_1 J _inst_2 _inst_4) F)) (CategoryTheory.Limits.colimitQuotientCoproduct.{u1, u2, u3} C _inst_1 J _inst_2 _inst_4 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.colimit_quotient_coproduct_epi CategoryTheory.Limits.colimitQuotientCoproduct_epiₓ'. -/
instance colimitQuotientCoproduct_epi [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
Epi (colimitQuotientCoproduct F) :=
epi_comp _ _
#align category_theory.limits.colimit_quotient_coproduct_epi CategoryTheory.Limits.colimitQuotientCoproduct_epi
+#print CategoryTheory.Limits.has_colimits_of_hasCoequalizers_and_coproducts /-
/-- Any category with coproducts and coequalizers has all colimits.
See <https://stacks.math.columbia.edu/tag/002P>.
@@ -350,7 +441,9 @@ theorem has_colimits_of_hasCoequalizers_and_coproducts [HasCoproducts.{w} C] [Ha
HasColimitsOfShape := fun J 𝒥 =>
{ HasColimit := fun F => has_colimit_of_coequalizer_and_coproduct F } }
#align category_theory.limits.has_colimits_of_has_coequalizers_and_coproducts CategoryTheory.Limits.has_colimits_of_hasCoequalizers_and_coproducts
+-/
+#print CategoryTheory.Limits.hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts /-
/-- Any category with finite coproducts and coequalizers has all finite colimits.
See <https://stacks.math.columbia.edu/tag/002Q>.
@@ -359,6 +452,7 @@ theorem hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts [HasFiniteCop
[HasCoequalizers C] : HasFiniteColimits C :=
⟨fun J _ _ => { HasColimit := fun F => has_colimit_of_coequalizer_and_coproduct F }⟩
#align category_theory.limits.has_finite_colimits_of_has_coequalizers_and_finite_coproducts CategoryTheory.Limits.hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts
+-/
noncomputable section
@@ -371,6 +465,7 @@ variable (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
[PreservesColimitsOfShape (Discrete.{w} J) G]
[PreservesColimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) G]
+#print CategoryTheory.Limits.preservesColimitOfPreservesCoequalizersAndCoproduct /-
/-- If a functor preserves coequalizers and the appropriate coproducts, it preserves colimits. -/
def preservesColimitOfPreservesCoequalizersAndCoproduct : PreservesColimitsOfShape J G
where PreservesColimit K := by
@@ -406,10 +501,17 @@ def preservesColimitOfPreservesCoequalizersAndCoproduct : PreservesColimitsOfSha
dsimp
simp
#align category_theory.limits.preserves_colimit_of_preserves_coequalizers_and_coproduct CategoryTheory.Limits.preservesColimitOfPreservesCoequalizersAndCoproduct
+-/
-- See note [dsimp, simp].
end
+/- warning: category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts -> CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasCoequalizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteCoproducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : forall (J : Type) [_inst_8 : Fintype.{0} J], CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 (CategoryTheory.Discrete.{0} J) (CategoryTheory.discreteCategory.{0} J) G], CategoryTheory.Limits.PreservesFiniteColimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_3 : CategoryTheory.Category.{u2, u4} D] [_inst_4 : CategoryTheory.Limits.HasCoequalizers.{u1, u3} C _inst_1] [_inst_5 : CategoryTheory.Limits.HasFiniteCoproducts.{u1, u3} C _inst_1] (G : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_3) [_inst_6 : CategoryTheory.Limits.PreservesColimitsOfShape.{0, 0, u1, u2, u3, u4} C _inst_1 D _inst_3 CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory G] [_inst_7 : CategoryTheory.Limits.PreservesFiniteCoproducts.{u1, u2, u3, u4} C _inst_1 D _inst_3 G], CategoryTheory.Limits.PreservesFiniteColimits.{u1, u2, u3, u4} C _inst_1 D _inst_3 G
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproductsₓ'. -/
/-- If G preserves coequalizers and finite coproducts, it preserves finite colimits. -/
def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts [HasCoequalizers C]
[HasFiniteCoproducts C] (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
@@ -417,6 +519,7 @@ def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts [HasCoequa
⟨fun _ _ _ => preserves_colimit_of_preserves_coequalizers_and_coproduct G⟩
#align category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts
+#print CategoryTheory.Limits.preservesColimitsOfPreservesCoequalizersAndCoproducts /-
/-- If G preserves coequalizers and coproducts, it preserves all colimits. -/
def preservesColimitsOfPreservesCoequalizersAndCoproducts [HasCoequalizers C] [HasCoproducts.{w} C]
(G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
@@ -424,7 +527,9 @@ def preservesColimitsOfPreservesCoequalizersAndCoproducts [HasCoequalizers C] [H
where PreservesColimitsOfShape J 𝒥 :=
preserves_colimit_of_preserves_coequalizers_and_coproduct G
#align category_theory.limits.preserves_colimits_of_preserves_coequalizers_and_coproducts CategoryTheory.Limits.preservesColimitsOfPreservesCoequalizersAndCoproducts
+-/
+#print CategoryTheory.Limits.hasFiniteColimits_of_hasInitial_and_pushouts /-
theorem hasFiniteColimits_of_hasInitial_and_pushouts [HasInitial C] [HasPushouts C] :
HasFiniteColimits C :=
@hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts _
@@ -433,7 +538,9 @@ theorem hasFiniteColimits_of_hasInitial_and_pushouts [HasInitial C] [HasPushouts
(@hasCoequalizers_of_hasPushouts_and_binary_coproducts _
(hasBinaryCoproducts_of_hasInitial_and_pushouts C) inferInstance)
#align category_theory.limits.has_finite_colimits_of_has_initial_and_pushouts CategoryTheory.Limits.hasFiniteColimits_of_hasInitial_and_pushouts
+-/
+#print CategoryTheory.Limits.preservesFiniteColimitsOfPreservesInitialAndPushouts /-
/-- If G preserves initial objects and pushouts, it preserves all finite colimits. -/
def preservesFiniteColimitsOfPreservesInitialAndPushouts [HasInitial C] [HasPushouts C] (G : C ⥤ D)
[PreservesColimitsOfShape (Discrete.{0} PEmpty) G] [PreservesColimitsOfShape WalkingSpan G] :
@@ -447,6 +554,7 @@ def preservesFiniteColimitsOfPreservesInitialAndPushouts [HasInitial C] [HasPush
(preserves_coequalizers_of_preserves_pushouts_and_binary_coproducts G)
(preserves_finite_coproducts_of_preserves_binary_and_initial G)
#align category_theory.limits.preserves_finite_colimits_of_preserves_initial_and_pushouts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesInitialAndPushouts
+-/
end CategoryTheory.Limits
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -73,7 +73,7 @@ def buildLimit : Cone F where
variable {i}
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[] -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/--
(Implementation) Show the cone constructed in `build_limit` is limiting, provided the cones used in
its construction are.
@@ -88,7 +88,7 @@ def buildIsLimit (t₁ : IsLimit c₁) (t₂ : IsLimit c₂) (hi : IsLimit i) :
· apply t₂.hom_ext
intro j
trace
- "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[]"
+ "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[]"
simp [hs, ht]
uniq q m w :=
hi.hom_ext
@@ -275,7 +275,7 @@ def buildColimit : Cocone F where
variable {i}
-/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[] -/
+/- ./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[] -/
/-- (Implementation) Show the cocone constructed in `build_colimit` is colimiting,
provided the cocones used in its construction are.
-/
@@ -289,7 +289,7 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
· apply t₁.hom_ext
intro j
trace
- "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[]"
+ "./././Mathport/Syntax/Translate/Tactic/Builtin.lean:73:14: unsupported tactic `discrete_cases #[]"
simp [reassoc_of hs, reassoc_of ht]
uniq q m w :=
hi.hom_ext
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -51,7 +51,7 @@ variable {J : Type w} [SmallCategory J]
namespace HasLimitOfHasProductsOfHasEqualizers
variable {F : J ⥤ C} {c₁ : Fan F.obj} {c₂ : Fan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.2}
- (s t : c₁.x ⟶ c₂.x)
+ (s t : c₁.pt ⟶ c₂.pt)
(hs : ∀ f : Σp : J × J, p.1 ⟶ p.2, s ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.1⟩ ≫ F.map f.2)
(ht : ∀ f : Σp : J × J, p.1 ⟶ p.2, t ≫ c₂.π.app ⟨f⟩ = c₁.π.app ⟨f.1.2⟩) (i : Fork s t)
@@ -63,7 +63,7 @@ limiting if the given cones are also.
-/
@[simps]
def buildLimit : Cone F where
- x := i.x
+ pt := i.pt
π :=
{ app := fun j => i.ι ≫ c₁.π.app ⟨_⟩
naturality' := fun j₁ j₂ f => by
@@ -254,7 +254,7 @@ We now dualize the above constructions, resorting to copy-paste.
namespace HasColimitOfHasCoproductsOfHasCoequalizers
variable {F : J ⥤ C} {c₁ : Cofan fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.1} {c₂ : Cofan F.obj}
- (s t : c₁.x ⟶ c₂.x)
+ (s t : c₁.pt ⟶ c₂.pt)
(hs : ∀ f : Σp : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ s = F.map f.2 ≫ c₂.ι.app ⟨f.1.2⟩)
(ht : ∀ f : Σp : J × J, p.1 ⟶ p.2, c₁.ι.app ⟨f⟩ ≫ t = c₂.ι.app ⟨f.1.1⟩) (i : Cofork s t)
@@ -265,7 +265,7 @@ build the cocone for `F` which is colimiting if the given cocones are also.
-/
@[simps]
def buildColimit : Cocone F where
- x := i.x
+ pt := i.pt
ι :=
{ app := fun j => c₂.ι.app ⟨_⟩ ≫ i.π
naturality' := fun j₁ j₂ f => by
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -90,7 +90,7 @@ def buildIsLimit (t₁ : IsLimit c₁) (t₂ : IsLimit c₂) (hi : IsLimit i) :
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[]"
simp [hs, ht]
- uniq' q m w :=
+ uniq q m w :=
hi.hom_ext
(i.equalizer_ext
(t₁.hom_ext fun j => by
@@ -121,11 +121,11 @@ Given the existence of the appropriate (possibly finite) products and equalizers
`F` exists.
(This assumes the existence of all equalizers, which is technically stronger than needed.)
-/
-theorem hasLimitOfEqualizerAndProduct (F : J ⥤ C) [HasLimit (Discrete.functor F.obj)]
+theorem hasLimit_of_equalizer_and_product (F : J ⥤ C) [HasLimit (Discrete.functor F.obj)]
[HasLimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.2)] [HasEqualizers C] :
HasLimit F :=
HasLimit.mk (limitConeOfEqualizerAndProduct F)
-#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimitOfEqualizerAndProduct
+#align category_theory.limits.has_limit_of_equalizer_and_product CategoryTheory.Limits.hasLimit_of_equalizer_and_product
/-- A limit can be realised as a subobject of a product. -/
noncomputable def limitSubobjectProduct [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
@@ -142,19 +142,19 @@ instance limitSubobjectProduct_mono [HasLimitsOfSize.{w, w} C] (F : J ⥤ C) :
See <https://stacks.math.columbia.edu/tag/002N>.
-/
-theorem hasLimitsOfHasEqualizersAndProducts [HasProducts.{w} C] [HasEqualizers C] :
+theorem has_limits_of_hasEqualizers_and_products [HasProducts.{w} C] [HasEqualizers C] :
HasLimitsOfSize.{w, w} C :=
{ HasLimitsOfShape := fun J 𝒥 => { HasLimit := fun F => has_limit_of_equalizer_and_product F } }
-#align category_theory.limits.has_limits_of_has_equalizers_and_products CategoryTheory.Limits.hasLimitsOfHasEqualizersAndProducts
+#align category_theory.limits.has_limits_of_has_equalizers_and_products CategoryTheory.Limits.has_limits_of_hasEqualizers_and_products
/-- Any category with finite products and equalizers has all finite limits.
See <https://stacks.math.columbia.edu/tag/002O>.
-/
-theorem hasFiniteLimitsOfHasEqualizersAndFiniteProducts [HasFiniteProducts C] [HasEqualizers C] :
- HasFiniteLimits C :=
+theorem hasFiniteLimits_of_hasEqualizers_and_finite_products [HasFiniteProducts C]
+ [HasEqualizers C] : HasFiniteLimits C :=
⟨fun J _ _ => { HasLimit := fun F => has_limit_of_equalizer_and_product F }⟩
-#align category_theory.limits.has_finite_limits_of_has_equalizers_and_finite_products CategoryTheory.Limits.hasFiniteLimitsOfHasEqualizersAndFiniteProducts
+#align category_theory.limits.has_finite_limits_of_has_equalizers_and_finite_products CategoryTheory.Limits.hasFiniteLimits_of_hasEqualizers_and_finite_products
variable {D : Type u₂} [Category.{v₂} D]
@@ -222,14 +222,14 @@ def preservesLimitsOfPreservesEqualizersAndProducts [HasEqualizers C] [HasProduc
where PreservesLimitsOfShape J 𝒥 := preserves_limit_of_preserves_equalizers_and_product G
#align category_theory.limits.preserves_limits_of_preserves_equalizers_and_products CategoryTheory.Limits.preservesLimitsOfPreservesEqualizersAndProducts
-theorem hasFiniteLimitsOfHasTerminalAndPullbacks [HasTerminal C] [HasPullbacks C] :
+theorem hasFiniteLimits_of_hasTerminal_and_pullbacks [HasTerminal C] [HasPullbacks C] :
HasFiniteLimits C :=
- @hasFiniteLimitsOfHasEqualizersAndFiniteProducts _
- (@hasFiniteProductsOfHasBinaryAndTerminal _ (hasBinaryProducts_of_hasTerminal_and_pullbacks C)
- inferInstance)
+ @hasFiniteLimits_of_hasEqualizers_and_finite_products _
+ (@hasFiniteProducts_of_has_binary_and_terminal _
+ (hasBinaryProducts_of_hasTerminal_and_pullbacks C) inferInstance)
(@hasEqualizers_of_hasPullbacks_and_binary_products _
(hasBinaryProducts_of_hasTerminal_and_pullbacks C) inferInstance)
-#align category_theory.limits.has_finite_limits_of_has_terminal_and_pullbacks CategoryTheory.Limits.hasFiniteLimitsOfHasTerminalAndPullbacks
+#align category_theory.limits.has_finite_limits_of_has_terminal_and_pullbacks CategoryTheory.Limits.hasFiniteLimits_of_hasTerminal_and_pullbacks
/-- If G preserves terminal objects and pullbacks, it preserves all finite limits. -/
def preservesFiniteLimitsOfPreservesTerminalAndPullbacks [HasTerminal C] [HasPullbacks C]
@@ -291,7 +291,7 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
trace
"./././Mathport/Syntax/Translate/Tactic/Builtin.lean:76:14: unsupported tactic `discrete_cases #[]"
simp [reassoc_of hs, reassoc_of ht]
- uniq' q m w :=
+ uniq q m w :=
hi.hom_ext
(i.coequalizer_ext
(t₂.hom_ext fun j => by
@@ -323,11 +323,11 @@ noncomputable def colimitCoconeOfCoequalizerAndCoproduct (F : J ⥤ C)
we know a colimit of `F` exists.
(This assumes the existence of all coequalizers, which is technically stronger than needed.)
-/
-theorem hasColimitOfCoequalizerAndCoproduct (F : J ⥤ C) [HasColimit (Discrete.functor F.obj)]
+theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discrete.functor F.obj)]
[HasColimit (Discrete.functor fun f : Σp : J × J, p.1 ⟶ p.2 => F.obj f.1.1)]
[HasCoequalizers C] : HasColimit F :=
HasColimit.mk (colimitCoconeOfCoequalizerAndCoproduct F)
-#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimitOfCoequalizerAndCoproduct
+#align category_theory.limits.has_colimit_of_coequalizer_and_coproduct CategoryTheory.Limits.hasColimit_of_coequalizer_and_coproduct
/-- A colimit can be realised as a quotient of a coproduct. -/
noncomputable def colimitQuotientCoproduct [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
@@ -344,21 +344,21 @@ instance colimitQuotientCoproduct_epi [HasColimitsOfSize.{w, w} C] (F : J ⥤ C)
See <https://stacks.math.columbia.edu/tag/002P>.
-/
-theorem hasColimitsOfHasCoequalizersAndCoproducts [HasCoproducts.{w} C] [HasCoequalizers C] :
+theorem has_colimits_of_hasCoequalizers_and_coproducts [HasCoproducts.{w} C] [HasCoequalizers C] :
HasColimitsOfSize.{w, w} C :=
{
HasColimitsOfShape := fun J 𝒥 =>
{ HasColimit := fun F => has_colimit_of_coequalizer_and_coproduct F } }
-#align category_theory.limits.has_colimits_of_has_coequalizers_and_coproducts CategoryTheory.Limits.hasColimitsOfHasCoequalizersAndCoproducts
+#align category_theory.limits.has_colimits_of_has_coequalizers_and_coproducts CategoryTheory.Limits.has_colimits_of_hasCoequalizers_and_coproducts
/-- Any category with finite coproducts and coequalizers has all finite colimits.
See <https://stacks.math.columbia.edu/tag/002Q>.
-/
-theorem hasFiniteColimitsOfHasCoequalizersAndFiniteCoproducts [HasFiniteCoproducts C]
+theorem hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts [HasFiniteCoproducts C]
[HasCoequalizers C] : HasFiniteColimits C :=
⟨fun J _ _ => { HasColimit := fun F => has_colimit_of_coequalizer_and_coproduct F }⟩
-#align category_theory.limits.has_finite_colimits_of_has_coequalizers_and_finite_coproducts CategoryTheory.Limits.hasFiniteColimitsOfHasCoequalizersAndFiniteCoproducts
+#align category_theory.limits.has_finite_colimits_of_has_coequalizers_and_finite_coproducts CategoryTheory.Limits.hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts
noncomputable section
@@ -425,14 +425,14 @@ def preservesColimitsOfPreservesCoequalizersAndCoproducts [HasCoequalizers C] [H
preserves_colimit_of_preserves_coequalizers_and_coproduct G
#align category_theory.limits.preserves_colimits_of_preserves_coequalizers_and_coproducts CategoryTheory.Limits.preservesColimitsOfPreservesCoequalizersAndCoproducts
-theorem hasFiniteColimitsOfHasInitialAndPushouts [HasInitial C] [HasPushouts C] :
+theorem hasFiniteColimits_of_hasInitial_and_pushouts [HasInitial C] [HasPushouts C] :
HasFiniteColimits C :=
- @hasFiniteColimitsOfHasCoequalizersAndFiniteCoproducts _
- (@hasFiniteCoproductsOfHasBinaryAndInitial _ (hasBinaryCoproducts_of_hasInitial_and_pushouts C)
- inferInstance)
+ @hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts _
+ (@hasFiniteCoproducts_of_has_binary_and_initial _
+ (hasBinaryCoproducts_of_hasInitial_and_pushouts C) inferInstance)
(@hasCoequalizers_of_hasPushouts_and_binary_coproducts _
(hasBinaryCoproducts_of_hasInitial_and_pushouts C) inferInstance)
-#align category_theory.limits.has_finite_colimits_of_has_initial_and_pushouts CategoryTheory.Limits.hasFiniteColimitsOfHasInitialAndPushouts
+#align category_theory.limits.has_finite_colimits_of_has_initial_and_pushouts CategoryTheory.Limits.hasFiniteColimits_of_hasInitial_and_pushouts
/-- If G preserves initial objects and pushouts, it preserves all finite colimits. -/
def preservesFiniteColimitsOfPreservesInitialAndPushouts [HasInitial C] [HasPushouts C] (G : C ⥤ D)
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -41,7 +41,6 @@ namespace CategoryTheory.Limits
universe w v v₂ u u₂
variable {C : Type u} [Category.{v} C]
-
variable {J : Type w} [SmallCategory J]
-- We hide the "implementation details" inside a namespace
@@ -175,7 +175,7 @@ noncomputable def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimit
let i : I ⟶ P := equalizer.ι s t
apply
preservesLimitOfPreservesLimitCone
- (buildIsLimit s t (by simp) (by simp) (limit.isLimit _) (limit.isLimit _)
+ (buildIsLimit s t (by simp [s]) (by simp [t]) (limit.isLimit _) (limit.isLimit _)
(limit.isLimit _))
refine' IsLimit.ofIsoLimit (buildIsLimit _ _ _ _ _ _ _) _
· exact Fan.mk _ fun j => G.map (Pi.π _ j)
@@ -183,11 +183,11 @@ noncomputable def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimit
· apply G.map s
· apply G.map t
· intro f
- dsimp [Fan.mk]
+ dsimp [s, Fan.mk]
simp only [← G.map_comp, limit.lift_π]
congr
· intro f
- dsimp [Fan.mk]
+ dsimp [t, Fan.mk]
simp only [← G.map_comp, limit.lift_π]
apply congrArg G.map
dsimp
@@ -400,7 +400,7 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
let i : P ⟶ I := coequalizer.π s t
apply
preservesColimitOfPreservesColimitCocone
- (buildIsColimit s t (by simp) (by simp) (colimit.isColimit _) (colimit.isColimit _)
+ (buildIsColimit s t (by simp [s]) (by simp [t]) (colimit.isColimit _) (colimit.isColimit _)
(colimit.isColimit _))
refine' IsColimit.ofIsoColimit (buildIsColimit _ _ _ _ _ _ _) _
· refine Cofan.mk (G.obj Q) fun j => G.map ?_
@@ -410,11 +410,11 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
· apply G.map s
· apply G.map t
· intro f
- dsimp [Cofan.mk]
+ dsimp [s, Cofan.mk]
simp only [← G.map_comp, colimit.ι_desc]
congr
· intro f
- dsimp [Cofan.mk]
+ dsimp [t, Cofan.mk]
simp only [← G.map_comp, colimit.ι_desc]
dsimp
· refine Cofork.ofπ (G.map i) ?_
@@ -2,11 +2,6 @@
Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.limits.constructions.limits_of_products_and_equalizers
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Fintype.Prod
import Mathlib.Data.Fintype.Sigma
@@ -19,6 +14,8 @@ import Mathlib.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProduct
import Mathlib.CategoryTheory.Limits.Constructions.Equalizers
import Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
+#align_import category_theory.limits.constructions.limits_of_products_and_equalizers from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
+
/-!
# Constructing limits from products and equalizers.
@@ -221,7 +221,7 @@ noncomputable def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [H
preservesFiniteLimits := by
intro J sJ fJ
haveI : Fintype J := inferInstance
- haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
+ haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
apply @preservesLimitOfPreservesEqualizersAndProduct _ _ _ sJ _ _ ?_ ?_ _ G _ ?_ ?_
· apply hasLimitsOfShape_discrete _ _
· apply hasLimitsOfShape_discrete _
@@ -283,7 +283,7 @@ def buildColimit : Cocone F where
{ app := fun j => c₂.ι.app ⟨_⟩ ≫ i.π
naturality := fun j₁ j₂ f => by
dsimp
- have reassoced (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} {h : _ ⟶ W} :
+ have reassoced (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} {h : _ ⟶ W} :
c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
simp only [← Category.assoc, eq_whisker (hs f)]
rw [Category.comp_id, ← reassoced ⟨⟨_, _⟩, f⟩, i.condition, ← Category.assoc, ht] }
@@ -303,11 +303,11 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
· apply t₁.hom_ext
intro j
cases' j with j
- have reassoced_s (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
+ have reassoced_s (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
simp only [← Category.assoc]
apply eq_whisker (hs f)
- have reassoced_t (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
+ have reassoced_t (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
c₁.ι.app ⟨f⟩ ≫ t ≫ h = c₂.ι.app ⟨f.fst.fst⟩ ≫ h := by
simp only [← Category.assoc]
apply eq_whisker (ht f)
@@ -438,7 +438,7 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
end
/- Porting note: the original parameter [∀ (J) [Fintype J], PreservesColimitsOfShape
-(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
+(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
with type Fintype J does not have forward dependencies, type class resolution cannot use
this kind of local instance because it will not be able to infer a value for this parameter."
Factored out this as new class in `CategoryTheory.Limits.Preserves.Finite` -/
@@ -450,7 +450,7 @@ noncomputable def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoprodu
preservesFiniteColimits := by
intro J sJ fJ
haveI : Fintype J := inferInstance
- haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
+ haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
apply @preservesColimitOfPreservesCoequalizersAndCoproduct _ _ _ sJ _ _ ?_ ?_ _ G _ ?_ ?_
· apply hasColimitsOfShape_discrete _ _
· apply hasColimitsOfShape_discrete _
@@ -352,7 +352,7 @@ theorem hasColimit_of_coequalizer_and_coproduct (F : J ⥤ C) [HasColimit (Discr
/-- A colimit can be realised as a quotient of a coproduct. -/
noncomputable def colimitQuotientCoproduct [HasColimitsOfSize.{w, w} C] (F : J ⥤ C) :
- (∐ fun j => F.obj j) ⟶ colimit F :=
+ ∐ (fun j => F.obj j) ⟶ colimit F :=
coequalizer.π _ _ ≫ (colimit.isoColimitCocone (colimitCoconeOfCoequalizerAndCoproduct F)).inv
#align category_theory.limits.colimit_quotient_coproduct CategoryTheory.Limits.colimitQuotientCoproduct
@@ -154,8 +154,7 @@ theorem hasFiniteLimits_of_hasEqualizers_and_finite_products [HasFiniteProducts
variable {D : Type u₂} [Category.{v₂} D]
-/- Porting note: original file have noncomputable theory which made everything after
-noncomputable. Removed this and made whatever necessary noncomputable -/
+/- Porting note: Removed this and made whatever necessary noncomputable -/
-- noncomputable section
section
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.)@@ -488,7 +488,6 @@ noncomputable def preservesFiniteColimitsOfPreservesInitialAndPushouts [HasIniti
@preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts _ _ _ _ _ _ G _ ?_
apply PreservesFiniteCoproducts.mk
apply preservesFiniteCoproductsOfPreservesBinaryAndInitial G
-
#align category_theory.limits.preserves_finite_colimits_of_preserves_initial_and_pushouts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesInitialAndPushouts
end CategoryTheory.Limits
preservesFiniteLimits
(#2827)
From this Zulip thread.
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -219,7 +219,7 @@ parameter." Factored out this as new class in `CategoryTheory.Limits.Preserves.F
noncomputable def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C]
[HasFiniteProducts C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[PreservesFiniteProducts G] : PreservesFiniteLimits G where
- PreservesFiniteLimits := by
+ preservesFiniteLimits := by
intro J sJ fJ
haveI : Fintype J := inferInstance
haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
@@ -448,7 +448,7 @@ noncomputable def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoprodu
[HasCoequalizers C] [HasFiniteCoproducts C] (G : C ⥤ D)
[PreservesColimitsOfShape WalkingParallelPair G]
[PreservesFiniteCoproducts G] : PreservesFiniteColimits G where
- PreservesFiniteColimits := by
+ preservesFiniteColimits := by
intro J sJ fJ
haveI : Fintype J := inferInstance
haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
vscode is already configured by .vscode/settings.json
to trim these on save. It's not clear how they've managed to stick around.
By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.
This was done with a regex search in vscode,
@@ -90,7 +90,7 @@ def buildIsLimit (t₁ : IsLimit c₁) (t₂ : IsLimit c₂) (hi : IsLimit i) :
(t₁.hom_ext fun j => by
cases' j with j
simpa using w j))
- fac s j := by simp
+ fac s j := by simp
#align category_theory.limits.has_limit_of_has_products_of_has_equalizers.build_is_limit CategoryTheory.Limits.HasLimitOfHasProductsOfHasEqualizers.buildIsLimit
end HasLimitOfHasProductsOfHasEqualizers
@@ -139,7 +139,7 @@ See <https://stacks.math.columbia.edu/tag/002N>.
-/
theorem has_limits_of_hasEqualizers_and_products [HasProducts.{w} C] [HasEqualizers C] :
HasLimitsOfSize.{w, w} C :=
- { has_limits_of_shape :=
+ { has_limits_of_shape :=
fun _ _ => { has_limit := fun F => hasLimit_of_equalizer_and_product F } }
#align category_theory.limits.has_limits_of_has_equalizers_and_products CategoryTheory.Limits.has_limits_of_hasEqualizers_and_products
@@ -148,13 +148,13 @@ theorem has_limits_of_hasEqualizers_and_products [HasProducts.{w} C] [HasEqualiz
See <https://stacks.math.columbia.edu/tag/002O>.
-/
theorem hasFiniteLimits_of_hasEqualizers_and_finite_products [HasFiniteProducts C]
- [HasEqualizers C] : HasFiniteLimits C where
+ [HasEqualizers C] : HasFiniteLimits C where
out _ := { has_limit := fun F => hasLimit_of_equalizer_and_product F }
#align category_theory.limits.has_finite_limits_of_has_equalizers_and_finite_products CategoryTheory.Limits.hasFiniteLimits_of_hasEqualizers_and_finite_products
variable {D : Type u₂} [Category.{v₂} D]
-/- Porting note: original file have noncomputable theory which made everything after
+/- Porting note: original file have noncomputable theory which made everything after
noncomputable. Removed this and made whatever necessary noncomputable -/
-- noncomputable section
@@ -189,19 +189,19 @@ noncomputable def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimit
· intro f
dsimp [Fan.mk]
simp only [← G.map_comp, limit.lift_π]
- congr
+ congr
· intro f
dsimp [Fan.mk]
simp only [← G.map_comp, limit.lift_π]
- apply congrArg G.map
+ apply congrArg G.map
dsimp
· apply Fork.ofι (G.map i)
rw [← G.map_comp, ← G.map_comp]
apply congrArg G.map
- exact equalizer.condition s t
+ exact equalizer.condition s t
· apply isLimitOfHasProductOfPreservesLimit
· apply isLimitOfHasProductOfPreservesLimit
- · apply isLimitForkMapOfIsLimit
+ · apply isLimitForkMapOfIsLimit
apply equalizerIsEqualizer
· refine Cones.ext (Iso.refl _) ?_
intro j; dsimp; simp
@@ -210,30 +210,30 @@ noncomputable def preservesLimitOfPreservesEqualizersAndProduct : PreservesLimit
end
-/- Porting note: the original parameter [∀ (J) [Fintype J], PreservesColimitsOfShape
-(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
-with type Fintype J does not have forward dependencies, type class resolution cannot
-use this kind of local instance because it will not be able to infer a value for this
+/- Porting note: the original parameter [∀ (J) [Fintype J], PreservesColimitsOfShape
+(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
+with type Fintype J does not have forward dependencies, type class resolution cannot
+use this kind of local instance because it will not be able to infer a value for this
parameter." Factored out this as new class in `CategoryTheory.Limits.Preserves.Finite` -/
/-- If G preserves equalizers and finite products, it preserves finite limits. -/
noncomputable def preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts [HasEqualizers C]
[HasFiniteProducts C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
[PreservesFiniteProducts G] : PreservesFiniteLimits G where
- PreservesFiniteLimits := by
- intro J sJ fJ
- haveI : Fintype J := inferInstance
- haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
+ PreservesFiniteLimits := by
+ intro J sJ fJ
+ haveI : Fintype J := inferInstance
+ haveI : Fintype ((p : J × J) × (p.fst ⟶ p.snd)) := inferInstance
apply @preservesLimitOfPreservesEqualizersAndProduct _ _ _ sJ _ _ ?_ ?_ _ G _ ?_ ?_
· apply hasLimitsOfShape_discrete _ _
· apply hasLimitsOfShape_discrete _
- · apply PreservesFiniteProducts.preserves _
- · apply PreservesFiniteProducts.preserves _
+ · apply PreservesFiniteProducts.preserves _
+ · apply PreservesFiniteProducts.preserves _
#align category_theory.limits.preserves_finite_limits_of_preserves_equalizers_and_finite_products CategoryTheory.Limits.preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts
/-- If G preserves equalizers and products, it preserves all limits. -/
-noncomputable def preservesLimitsOfPreservesEqualizersAndProducts [HasEqualizers C]
+noncomputable def preservesLimitsOfPreservesEqualizersAndProducts [HasEqualizers C]
[HasProducts.{w} C] (G : C ⥤ D) [PreservesLimitsOfShape WalkingParallelPair G]
- [∀ J, PreservesLimitsOfShape (Discrete.{w} J) G] : PreservesLimitsOfSize.{w, w} G where
+ [∀ J, PreservesLimitsOfShape (Discrete.{w} J) G] : PreservesLimitsOfSize.{w, w} G where
preservesLimitsOfShape := preservesLimitOfPreservesEqualizersAndProduct G
#align category_theory.limits.preserves_limits_of_preserves_equalizers_and_products CategoryTheory.Limits.preservesLimitsOfPreservesEqualizersAndProducts
@@ -247,17 +247,17 @@ theorem hasFiniteLimits_of_hasTerminal_and_pullbacks [HasTerminal C] [HasPullbac
#align category_theory.limits.has_finite_limits_of_has_terminal_and_pullbacks CategoryTheory.Limits.hasFiniteLimits_of_hasTerminal_and_pullbacks
/-- If G preserves terminal objects and pullbacks, it preserves all finite limits. -/
-noncomputable def preservesFiniteLimitsOfPreservesTerminalAndPullbacks [HasTerminal C]
+noncomputable def preservesFiniteLimitsOfPreservesTerminalAndPullbacks [HasTerminal C]
[HasPullbacks C] (G : C ⥤ D) [PreservesLimitsOfShape (Discrete.{0} PEmpty) G]
[PreservesLimitsOfShape WalkingCospan G] : PreservesFiniteLimits G := by
haveI : HasFiniteLimits C := hasFiniteLimits_of_hasTerminal_and_pullbacks
haveI : PreservesLimitsOfShape (Discrete WalkingPair) G :=
preservesBinaryProductsOfPreservesTerminalAndPullbacks G
- haveI : PreservesLimitsOfShape WalkingParallelPair G :=
+ haveI : PreservesLimitsOfShape WalkingParallelPair G :=
preservesEqualizersOfPreservesPullbacksAndBinaryProducts G
- apply
+ apply
@preservesFiniteLimitsOfPreservesEqualizersAndFiniteProducts _ _ _ _ _ _ G _ ?_
- apply PreservesFiniteProducts.mk
+ apply PreservesFiniteProducts.mk
apply preservesFiniteProductsOfPreservesBinaryAndTerminal G
#align category_theory.limits.preserves_finite_limits_of_preserves_terminal_and_pullbacks CategoryTheory.Limits.preservesFiniteLimitsOfPreservesTerminalAndPullbacks
@@ -284,8 +284,8 @@ def buildColimit : Cocone F where
{ app := fun j => c₂.ι.app ⟨_⟩ ≫ i.π
naturality := fun j₁ j₂ f => by
dsimp
- have reassoced (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} {h : _ ⟶ W} :
- c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
+ have reassoced (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} {h : _ ⟶ W} :
+ c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
simp only [← Category.assoc, eq_whisker (hs f)]
rw [Category.comp_id, ← reassoced ⟨⟨_, _⟩, f⟩, i.condition, ← Category.assoc, ht] }
#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildColimit
@@ -305,11 +305,11 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
intro j
cases' j with j
have reassoced_s (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
- c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
+ c₁.ι.app ⟨f⟩ ≫ s ≫ h = F.map f.snd ≫ c₂.ι.app ⟨f.fst.snd⟩ ≫ h := by
simp only [← Category.assoc]
apply eq_whisker (hs f)
have reassoced_t (f : (p : J × J) × (p.fst ⟶ p.snd)) {W : C} (h : _ ⟶ W) :
- c₁.ι.app ⟨f⟩ ≫ t ≫ h = c₂.ι.app ⟨f.fst.fst⟩ ≫ h := by
+ c₁.ι.app ⟨f⟩ ≫ t ≫ h = c₂.ι.app ⟨f.fst.fst⟩ ≫ h := by
simp only [← Category.assoc]
apply eq_whisker (ht f)
simp [reassoced_s, reassoced_t]
@@ -319,7 +319,7 @@ def buildIsColimit (t₁ : IsColimit c₁) (t₂ : IsColimit c₂) (hi : IsColim
(t₂.hom_ext fun j => by
cases' j with j
simpa using w j))
- fac s j := by simp
+ fac s j := by simp
#align category_theory.limits.has_colimit_of_has_coproducts_of_has_coequalizers.build_is_colimit CategoryTheory.Limits.HasColimitOfHasCoproductsOfHasCoequalizers.buildIsColimit
end HasColimitOfHasCoproductsOfHasCoequalizers
@@ -377,7 +377,7 @@ theorem has_colimits_of_hasCoequalizers_and_coproducts [HasCoproducts.{w} C] [Ha
See <https://stacks.math.columbia.edu/tag/002Q>.
-/
theorem hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts [HasFiniteCoproducts C]
- [HasCoequalizers C] : HasFiniteColimits C where
+ [HasCoequalizers C] : HasFiniteColimits C where
out _ := { has_colimit := fun F => hasColimit_of_coequalizer_and_coproduct F }
#align category_theory.limits.has_finite_colimits_of_has_coequalizers_and_finite_coproducts CategoryTheory.Limits.hasFiniteColimits_of_hasCoequalizers_and_finite_coproducts
@@ -393,7 +393,7 @@ variable (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
[PreservesColimitsOfShape (Discrete.{w} (Σp : J × J, p.1 ⟶ p.2)) G]
/-- If a functor preserves coequalizers and the appropriate coproducts, it preserves colimits. -/
-noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
+noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
PreservesColimitsOfShape J G where
preservesColimit {K} := by
let P := ∐ K.obj
@@ -407,8 +407,8 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
(buildIsColimit s t (by simp) (by simp) (colimit.isColimit _) (colimit.isColimit _)
(colimit.isColimit _))
refine' IsColimit.ofIsoColimit (buildIsColimit _ _ _ _ _ _ _) _
- · refine Cofan.mk (G.obj Q) fun j => G.map ?_
- apply Sigma.ι _ j
+ · refine Cofan.mk (G.obj Q) fun j => G.map ?_
+ apply Sigma.ι _ j
-- fun j => G.map (Sigma.ι _ j)
· exact Cofan.mk _ fun f => G.map (Sigma.ι _ f)
· apply G.map s
@@ -416,15 +416,15 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
· intro f
dsimp [Cofan.mk]
simp only [← G.map_comp, colimit.ι_desc]
- congr
+ congr
· intro f
dsimp [Cofan.mk]
simp only [← G.map_comp, colimit.ι_desc]
dsimp
· refine Cofork.ofπ (G.map i) ?_
rw [← G.map_comp, ← G.map_comp]
- apply congrArg G.map
- apply coequalizer.condition
+ apply congrArg G.map
+ apply coequalizer.condition
· apply isColimitOfHasCoproductOfPreservesColimit
· apply isColimitOfHasCoproductOfPreservesColimit
· apply isColimitCoforkMapOfIsColimit
@@ -438,16 +438,16 @@ noncomputable def preservesColimitOfPreservesCoequalizersAndCoproduct :
end
-/- Porting note: the original parameter [∀ (J) [Fintype J], PreservesColimitsOfShape
-(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
-with type Fintype J does not have forward dependencies, type class resolution cannot use
-this kind of local instance because it will not be able to infer a value for this parameter."
+/- Porting note: the original parameter [∀ (J) [Fintype J], PreservesColimitsOfShape
+(Discrete.{0} J) G] triggered the error "invalid parametric local instance, parameter
+with type Fintype J does not have forward dependencies, type class resolution cannot use
+this kind of local instance because it will not be able to infer a value for this parameter."
Factored out this as new class in `CategoryTheory.Limits.Preserves.Finite` -/
/-- If G preserves coequalizers and finite coproducts, it preserves finite colimits. -/
-noncomputable def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts
- [HasCoequalizers C] [HasFiniteCoproducts C] (G : C ⥤ D)
+noncomputable def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts
+ [HasCoequalizers C] [HasFiniteCoproducts C] (G : C ⥤ D)
[PreservesColimitsOfShape WalkingParallelPair G]
- [PreservesFiniteCoproducts G] : PreservesFiniteColimits G where
+ [PreservesFiniteCoproducts G] : PreservesFiniteColimits G where
PreservesFiniteColimits := by
intro J sJ fJ
haveI : Fintype J := inferInstance
@@ -456,11 +456,11 @@ noncomputable def preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoprodu
· apply hasColimitsOfShape_discrete _ _
· apply hasColimitsOfShape_discrete _
· apply PreservesFiniteCoproducts.preserves _
- · apply PreservesFiniteCoproducts.preserves _
+ · apply PreservesFiniteCoproducts.preserves _
#align category_theory.limits.preserves_finite_colimits_of_preserves_coequalizers_and_finite_coproducts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts
/-- If G preserves coequalizers and coproducts, it preserves all colimits. -/
-noncomputable def preservesColimitsOfPreservesCoequalizersAndCoproducts [HasCoequalizers C]
+noncomputable def preservesColimitsOfPreservesCoequalizersAndCoproducts [HasCoequalizers C]
[HasCoproducts.{w} C] (G : C ⥤ D) [PreservesColimitsOfShape WalkingParallelPair G]
[∀ J, PreservesColimitsOfShape (Discrete.{w} J) G] : PreservesColimitsOfSize.{w} G where
preservesColimitsOfShape := preservesColimitOfPreservesCoequalizersAndCoproduct G
@@ -477,19 +477,18 @@ theorem hasFiniteColimits_of_hasInitial_and_pushouts [HasInitial C] [HasPushouts
/-- If G preserves initial objects and pushouts, it preserves all finite colimits. -/
noncomputable def preservesFiniteColimitsOfPreservesInitialAndPushouts [HasInitial C]
- [HasPushouts C] (G : C ⥤ D) [PreservesColimitsOfShape (Discrete.{0} PEmpty) G]
+ [HasPushouts C] (G : C ⥤ D) [PreservesColimitsOfShape (Discrete.{0} PEmpty) G]
[PreservesColimitsOfShape WalkingSpan G] : PreservesFiniteColimits G := by
haveI : HasFiniteColimits C := hasFiniteColimits_of_hasInitial_and_pushouts
haveI : PreservesColimitsOfShape (Discrete WalkingPair) G :=
preservesBinaryCoproductsOfPreservesInitialAndPushouts G
- haveI : PreservesColimitsOfShape (WalkingParallelPair) G :=
+ haveI : PreservesColimitsOfShape (WalkingParallelPair) G :=
(preservesCoequalizersOfPreservesPushoutsAndBinaryCoproducts G)
refine
@preservesFiniteColimitsOfPreservesCoequalizersAndFiniteCoproducts _ _ _ _ _ _ G _ ?_
- apply PreservesFiniteCoproducts.mk
+ apply PreservesFiniteCoproducts.mk
apply preservesFiniteCoproductsOfPreservesBinaryAndInitial G
#align category_theory.limits.preserves_finite_colimits_of_preserves_initial_and_pushouts CategoryTheory.Limits.preservesFiniteColimitsOfPreservesInitialAndPushouts
end CategoryTheory.Limits
-
The unported dependencies are