category_theory.limits.constructions.limits_of_products_and_equalizersMathlib.CategoryTheory.Limits.Constructions.LimitsOfProductsAndEqualizers

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,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"
 
Diff
@@ -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.
 
Diff
@@ -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. -/
Diff
@@ -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
Diff
@@ -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]
Diff
@@ -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
Diff
@@ -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,
Diff
@@ -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.
 
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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)

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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
chore: prepare Lean version bump with explicit simp (#10999)

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

Diff
@@ -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) ?_
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,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.
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -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 _
fix: piObj / sigmaObj precedence (#5618)
Diff
@@ -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
 
feat: port CategoryTheory.Sites.CompatibleSheafification (#4953)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -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
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -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
refactor: lowercase structure member preservesFiniteLimits (#2827)

From this Zulip thread.

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -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
chore: strip trailing spaces in lean files (#2828)

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,

image

Diff
@@ -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
-
feat: port CategoryTheory.Limits.Constructions.LimitsOfProductsAndEqualizers (#2764)

Dependencies 2 + 266

267 files ported (99.3%)
107645 lines ported (99.9%)
Show graph

The unported dependencies are