category_theory.limits.preserves.shapes.biproductsMathlib.CategoryTheory.Limits.Preserves.Shapes.Biproducts

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -286,7 +286,10 @@ variable [PreservesZeroMorphisms F]
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
 @[simp, reassoc]
 theorem biproductComparison'_comp_biproductComparison :
-    biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by classical
+    biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by
+  classical
+  ext
+  simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
 -/
 
Diff
@@ -286,10 +286,7 @@ variable [PreservesZeroMorphisms F]
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
 @[simp, reassoc]
 theorem biproductComparison'_comp_biproductComparison :
-    biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by
-  classical
-  ext
-  simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
+    biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by classical
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
 -/
-import Mathbin.CategoryTheory.Limits.Shapes.Biproducts
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Zero
+import CategoryTheory.Limits.Shapes.Biproducts
+import CategoryTheory.Limits.Preserves.Shapes.Zero
 
 #align_import category_theory.limits.preserves.shapes.biproducts from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.biproducts
-! 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.CategoryTheory.Limits.Shapes.Biproducts
 import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Zero
 
+#align_import category_theory.limits.preserves.shapes.biproducts from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
+
 /-!
 # Preservation of biproducts
 
Diff
@@ -55,6 +55,7 @@ section Bicone
 
 variable {J : Type w₁}
 
+#print CategoryTheory.Functor.mapBicone /-
 /-- The image of a bicone under a functor. -/
 @[simps]
 def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
@@ -69,6 +70,7 @@ def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
       simp only [bicone_ι_π_self, CategoryTheory.Functor.map_id, eq_to_hom_refl]
     · rw [bicone_ι_π_ne _ h, F.map_zero]
 #align category_theory.functor.map_bicone CategoryTheory.Functor.mapBicone
+-/
 
 #print CategoryTheory.Functor.mapBicone_whisker /-
 theorem mapBicone_whisker {K : Type w₂} {g : K ≃ J} {f : J → C} (c : Bicone f) :
@@ -79,6 +81,7 @@ theorem mapBicone_whisker {K : Type w₂} {g : K ≃ J} {f : J → C} (c : Bicon
 
 end Bicone
 
+#print CategoryTheory.Functor.mapBinaryBicone /-
 /-- The image of a binary bicone under a functor. -/
 @[simps]
 def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y)
@@ -93,6 +96,7 @@ def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F
   inr_fst := by rw [← F.map_comp, b.inr_fst, F.map_zero]
   inr_snd := by rw [← F.map_comp, b.inr_snd, F.map_id]
 #align category_theory.functor.map_binary_bicone CategoryTheory.Functor.mapBinaryBicone
+-/
 
 end Map
 
@@ -114,12 +118,14 @@ class PreservesBiproduct (f : J → C) (F : C ⥤ D) [PreservesZeroMorphisms F]
 #align category_theory.limits.preserves_biproduct CategoryTheory.Limits.PreservesBiproduct
 -/
 
+#print CategoryTheory.Limits.isBilimitOfPreserves /-
 /-- A functor `F` preserves biproducts of `f` if `F` maps every bilimit bicone over `f` to a
     bilimit bicone over `F.obj ∘ f`. -/
 def isBilimitOfPreserves {f : J → C} (F : C ⥤ D) [PreservesZeroMorphisms F] [PreservesBiproduct f F]
     {b : Bicone f} (hb : b.IsBilimit) : (F.mapBicone b).IsBilimit :=
   PreservesBiproduct.preserves hb
 #align category_theory.limits.is_bilimit_of_preserves CategoryTheory.Limits.isBilimitOfPreserves
+-/
 
 variable (J)
 
@@ -184,6 +190,7 @@ class PreservesBinaryBiproduct (X Y : C) (F : C ⥤ D) [PreservesZeroMorphisms F
 #align category_theory.limits.preserves_binary_biproduct CategoryTheory.Limits.PreservesBinaryBiproduct
 -/
 
+#print CategoryTheory.Limits.isBinaryBilimitOfPreserves /-
 /-- A functor `F` preserves binary biproducts of `X` and `Y` if `F` maps every bilimit bicone over
     `X` and `Y` to a bilimit bicone over `F.obj X` and `F.obj Y`. -/
 def isBinaryBilimitOfPreserves {X Y : C} (F : C ⥤ D) [PreservesZeroMorphisms F]
@@ -191,6 +198,7 @@ def isBinaryBilimitOfPreserves {X Y : C} (F : C ⥤ D) [PreservesZeroMorphisms F
     (F.mapBinaryBicone b).IsBilimit :=
   PreservesBinaryBiproduct.preserves hb
 #align category_theory.limits.is_binary_bilimit_of_preserves CategoryTheory.Limits.isBinaryBilimitOfPreserves
+-/
 
 #print CategoryTheory.Limits.PreservesBinaryBiproducts /-
 /-- A functor `F` preserves binary biproducts if it preserves the binary biproduct of `X` and `Y`
@@ -242,32 +250,41 @@ section
 
 variable [HasBiproduct (F.obj ∘ f)]
 
+#print CategoryTheory.Functor.biproductComparison /-
 /-- As for products, any functor between categories with biproducts gives rise to a morphism
     `F.obj (⨁ f) ⟶ ⨁ (F.obj ∘ f)`. -/
 def biproductComparison : F.obj (⨁ f) ⟶ ⨁ F.obj ∘ f :=
   biproduct.lift fun j => F.map (biproduct.π f j)
 #align category_theory.functor.biproduct_comparison CategoryTheory.Functor.biproductComparison
+-/
 
+#print CategoryTheory.Functor.biproductComparison_π /-
 @[simp, reassoc]
 theorem biproductComparison_π (j : J) :
     biproductComparison F f ≫ biproduct.π _ j = F.map (biproduct.π f j) :=
   biproduct.lift_π _ _
 #align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_π
+-/
 
+#print CategoryTheory.Functor.biproductComparison' /-
 /-- As for coproducts, any functor between categories with biproducts gives rise to a morphism
     `⨁ (F.obj ∘ f) ⟶ F.obj (⨁ f)` -/
 def biproductComparison' : ⨁ F.obj ∘ f ⟶ F.obj (⨁ f) :=
   biproduct.desc fun j => F.map (biproduct.ι f j)
 #align category_theory.functor.biproduct_comparison' CategoryTheory.Functor.biproductComparison'
+-/
 
+#print CategoryTheory.Functor.ι_biproductComparison' /-
 @[simp, reassoc]
 theorem ι_biproductComparison' (j : J) :
     biproduct.ι _ j ≫ biproductComparison' F f = F.map (biproduct.ι f j) :=
   biproduct.ι_desc _ _
 #align category_theory.functor.ι_biproduct_comparison' CategoryTheory.Functor.ι_biproductComparison'
+-/
 
 variable [PreservesZeroMorphisms F]
 
+#print CategoryTheory.Functor.biproductComparison'_comp_biproductComparison /-
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
 @[simp, reassoc]
@@ -277,21 +294,26 @@ theorem biproductComparison'_comp_biproductComparison :
   ext
   simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
+-/
 
+#print CategoryTheory.Functor.splitEpiBiproductComparison /-
 /-- `biproduct_comparison F f` is a split epimorphism. -/
 @[simps]
 def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) :=
   ⟨biproductComparison' F f⟩
 #align category_theory.functor.split_epi_biproduct_comparison CategoryTheory.Functor.splitEpiBiproductComparison
+-/
 
 instance : IsSplitEpi (biproductComparison F f) :=
   IsSplitEpi.mk' (splitEpiBiproductComparison F f)
 
+#print CategoryTheory.Functor.splitMonoBiproductComparison' /-
 /-- `biproduct_comparison' F f` is a split monomorphism. -/
 @[simps]
 def splitMonoBiproductComparison' : SplitMono (biproductComparison' F f) :=
   ⟨biproductComparison F f⟩
 #align category_theory.functor.split_mono_biproduct_comparison' CategoryTheory.Functor.splitMonoBiproductComparison'
+-/
 
 instance : IsSplitMono (biproductComparison' F f) :=
   IsSplitMono.mk' (splitMonoBiproductComparison' F f)
@@ -300,28 +322,36 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBiproduct f F]
 
+#print CategoryTheory.Functor.hasBiproduct_of_preserves /-
 instance hasBiproduct_of_preserves : HasBiproduct (F.obj ∘ f) :=
   HasBiproduct.mk
     { Bicone := F.mapBicone (biproduct.bicone f)
       IsBilimit := PreservesBiproduct.preserves (biproduct.isBilimit _) }
 #align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preserves
+-/
 
+#print CategoryTheory.Functor.mapBiproduct /-
 /-- If `F` preserves a biproduct, we get a definitionally nice isomorphism
     `F.obj (⨁ f) ≅ ⨁ (F.obj ∘ f)`. -/
 @[simp]
 def mapBiproduct : F.obj (⨁ f) ≅ ⨁ F.obj ∘ f :=
   biproduct.uniqueUpToIso _ (PreservesBiproduct.preserves (biproduct.isBilimit _))
 #align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproduct
+-/
 
+#print CategoryTheory.Functor.mapBiproduct_hom /-
 theorem mapBiproduct_hom :
     (mapBiproduct F f).hom = biproduct.lift fun j => F.map (biproduct.π f j) :=
   rfl
 #align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_hom
+-/
 
+#print CategoryTheory.Functor.mapBiproduct_inv /-
 theorem mapBiproduct_inv :
     (mapBiproduct F f).inv = biproduct.desc fun j => F.map (biproduct.ι f j) :=
   rfl
 #align category_theory.functor.map_biproduct_inv CategoryTheory.Functor.mapBiproduct_inv
+-/
 
 end Bicone
 
@@ -331,40 +361,53 @@ section
 
 variable [HasBinaryBiproduct (F.obj X) (F.obj Y)]
 
+#print CategoryTheory.Functor.biprodComparison /-
 /-- As for products, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y`. -/
 def biprodComparison : F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y :=
   biprod.lift (F.map biprod.fst) (F.map biprod.snd)
 #align category_theory.functor.biprod_comparison CategoryTheory.Functor.biprodComparison
+-/
 
+#print CategoryTheory.Functor.biprodComparison_fst /-
 @[simp, reassoc]
 theorem biprodComparison_fst : biprodComparison F X Y ≫ biprod.fst = F.map biprod.fst :=
   biprod.lift_fst _ _
 #align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fst
+-/
 
+#print CategoryTheory.Functor.biprodComparison_snd /-
 @[simp, reassoc]
 theorem biprodComparison_snd : biprodComparison F X Y ≫ biprod.snd = F.map biprod.snd :=
   biprod.lift_snd _ _
 #align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_snd
+-/
 
+#print CategoryTheory.Functor.biprodComparison' /-
 /-- As for coproducts, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y)`. -/
 def biprodComparison' : F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y) :=
   biprod.desc (F.map biprod.inl) (F.map biprod.inr)
 #align category_theory.functor.biprod_comparison' CategoryTheory.Functor.biprodComparison'
+-/
 
+#print CategoryTheory.Functor.inl_biprodComparison' /-
 @[simp, reassoc]
 theorem inl_biprodComparison' : biprod.inl ≫ biprodComparison' F X Y = F.map biprod.inl :=
   biprod.inl_desc _ _
 #align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'
+-/
 
+#print CategoryTheory.Functor.inr_biprodComparison' /-
 @[simp, reassoc]
 theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map biprod.inr :=
   biprod.inr_desc _ _
 #align category_theory.functor.inr_biprod_comparison' CategoryTheory.Functor.inr_biprodComparison'
+-/
 
 variable [PreservesZeroMorphisms F]
 
+#print CategoryTheory.Functor.biprodComparison'_comp_biprodComparison /-
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_binary_biproduct_of_mono_biprod_comparison`. -/
 @[simp, reassoc]
@@ -372,21 +415,26 @@ theorem biprodComparison'_comp_biprodComparison :
     biprodComparison' F X Y ≫ biprodComparison F X Y = 𝟙 (F.obj X ⊞ F.obj Y) := by
   ext <;> simp [← functor.map_comp]
 #align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparison
+-/
 
+#print CategoryTheory.Functor.splitEpiBiprodComparison /-
 /-- `biprod_comparison F X Y` is a split epi. -/
 @[simps]
 def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) :=
   ⟨biprodComparison' F X Y⟩
 #align category_theory.functor.split_epi_biprod_comparison CategoryTheory.Functor.splitEpiBiprodComparison
+-/
 
 instance : IsSplitEpi (biprodComparison F X Y) :=
   IsSplitEpi.mk' (splitEpiBiprodComparison F X Y)
 
+#print CategoryTheory.Functor.splitMonoBiprodComparison' /-
 /-- `biprod_comparison' F X Y` is a split mono. -/
 @[simps]
 def splitMonoBiprodComparison' : SplitMono (biprodComparison' F X Y) :=
   ⟨biprodComparison F X Y⟩
 #align category_theory.functor.split_mono_biprod_comparison' CategoryTheory.Functor.splitMonoBiprodComparison'
+-/
 
 instance : IsSplitMono (biprodComparison' F X Y) :=
   IsSplitMono.mk' (splitMonoBiprodComparison' F X Y)
@@ -395,26 +443,34 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBinaryBiproduct X Y F]
 
+#print CategoryTheory.Functor.hasBinaryBiproduct_of_preserves /-
 instance hasBinaryBiproduct_of_preserves : HasBinaryBiproduct (F.obj X) (F.obj Y) :=
   HasBinaryBiproduct.mk
     { Bicone := F.mapBinaryBicone (BinaryBiproduct.bicone X Y)
       IsBilimit := PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _) }
 #align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preserves
+-/
 
+#print CategoryTheory.Functor.mapBiprod /-
 /-- If `F` preserves a binary biproduct, we get a definitionally nice isomorphism
     `F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y`. -/
 @[simp]
 def mapBiprod : F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y :=
   biprod.uniqueUpToIso _ _ (PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _))
 #align category_theory.functor.map_biprod CategoryTheory.Functor.mapBiprod
+-/
 
+#print CategoryTheory.Functor.mapBiprod_hom /-
 theorem mapBiprod_hom : (mapBiprod F X Y).hom = biprod.lift (F.map biprod.fst) (F.map biprod.snd) :=
   rfl
 #align category_theory.functor.map_biprod_hom CategoryTheory.Functor.mapBiprod_hom
+-/
 
+#print CategoryTheory.Functor.mapBiprod_inv /-
 theorem mapBiprod_inv : (mapBiprod F X Y).inv = biprod.desc (F.map biprod.inl) (F.map biprod.inr) :=
   rfl
 #align category_theory.functor.map_biprod_inv CategoryTheory.Functor.mapBiprod_inv
+-/
 
 end Functor
 
@@ -426,20 +482,26 @@ section Bicone
 
 variable {J : Type w₁} (f : J → C) [HasBiproduct f] [PreservesBiproduct f F] {W : C}
 
+#print CategoryTheory.Limits.biproduct.map_lift_mapBiprod /-
 theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
   ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
+-/
 
+#print CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc /-
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
   ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
+-/
 
+#print CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc /-
 theorem biproduct.mapBiproduct_hom_desc (g : ∀ j, f j ⟶ W) :
     ((F.mapBiproduct f).hom ≫ biproduct.desc fun j => F.map (g j)) = F.map (biproduct.desc g) := by
   rw [← biproduct.map_biproduct_inv_map_desc, iso.hom_inv_id_assoc]
 #align category_theory.limits.biproduct.map_biproduct_hom_desc CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc
+-/
 
 end Bicone
 
@@ -447,25 +509,33 @@ section BinaryBicone
 
 variable (X Y : C) [HasBinaryBiproduct X Y] [PreservesBinaryBiproduct X Y F] {W : C}
 
+#print CategoryTheory.Limits.biprod.map_lift_mapBiprod /-
 theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     F.map (biprod.lift f g) ≫ (F.mapBiprod X Y).hom = biprod.lift (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprod
+-/
 
+#print CategoryTheory.Limits.biprod.lift_mapBiprod /-
 theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     biprod.lift (F.map f) (F.map g) ≫ (F.mapBiprod X Y).inv = F.map (biprod.lift f g) := by
   rw [← biprod.map_lift_map_biprod, category.assoc, iso.hom_inv_id, category.comp_id]
 #align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprod
+-/
 
+#print CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc /-
 theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).inv ≫ F.map (biprod.desc f g) = biprod.desc (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
+-/
 
+#print CategoryTheory.Limits.biprod.mapBiprod_hom_desc /-
 theorem biprod.mapBiprod_hom_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).hom ≫ biprod.desc (F.map f) (F.map g) = F.map (biprod.desc f g) := by
   rw [← biprod.map_biprod_inv_map_desc, iso.hom_inv_id_assoc]
 #align category_theory.limits.biprod.map_biprod_hom_desc CategoryTheory.Limits.biprod.mapBiprod_hom_desc
+-/
 
 end BinaryBicone
 
Diff
@@ -274,8 +274,8 @@ variable [PreservesZeroMorphisms F]
 theorem biproductComparison'_comp_biproductComparison :
     biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by
   classical
-    ext
-    simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
+  ext
+  simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
 
 /-- `biproduct_comparison F f` is a split epimorphism. -/
Diff
@@ -55,12 +55,6 @@ section Bicone
 
 variable {J : Type w₁}
 
-/- warning: category_theory.functor.map_bicone -> CategoryTheory.Functor.mapBicone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} {f : J -> C}, (CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f) -> (CategoryTheory.Limits.Bicone.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} {f : J -> C}, (CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f) -> (CategoryTheory.Limits.Bicone.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_bicone CategoryTheory.Functor.mapBiconeₓ'. -/
 /-- The image of a bicone under a functor. -/
 @[simps]
 def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
@@ -85,12 +79,6 @@ theorem mapBicone_whisker {K : Type w₂} {g : K ≃ J} {f : J → C} (c : Bicon
 
 end Bicone
 
-/- warning: category_theory.functor.map_binary_bicone -> CategoryTheory.Functor.mapBinaryBicone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {X : C} {Y : C}, (CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y) -> (CategoryTheory.Limits.BinaryBicone.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {X : C} {Y : C}, (CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y) -> (CategoryTheory.Limits.BinaryBicone.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_binary_bicone CategoryTheory.Functor.mapBinaryBiconeₓ'. -/
 /-- The image of a binary bicone under a functor. -/
 @[simps]
 def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y)
@@ -126,12 +114,6 @@ class PreservesBiproduct (f : J → C) (F : C ⥤ D) [PreservesZeroMorphisms F]
 #align category_theory.limits.preserves_biproduct CategoryTheory.Limits.PreservesBiproduct
 -/
 
-/- warning: category_theory.limits.is_bilimit_of_preserves -> CategoryTheory.Limits.isBilimitOfPreserves is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} {f : J -> C} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {b : CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f}, (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u2, u4} J C _inst_1 _inst_3 f b) -> (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.mapBicone.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 J f b))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} {f : J -> C} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {b : CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f}, (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u2, u4} J C _inst_1 _inst_3 f b) -> (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.mapBicone.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 J f b))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.is_bilimit_of_preserves CategoryTheory.Limits.isBilimitOfPreservesₓ'. -/
 /-- A functor `F` preserves biproducts of `f` if `F` maps every bilimit bicone over `f` to a
     bilimit bicone over `F.obj ∘ f`. -/
 def isBilimitOfPreserves {f : J → C} (F : C ⥤ D) [PreservesZeroMorphisms F] [PreservesBiproduct f F]
@@ -202,12 +184,6 @@ class PreservesBinaryBiproduct (X Y : C) (F : C ⥤ D) [PreservesZeroMorphisms F
 #align category_theory.limits.preserves_binary_biproduct CategoryTheory.Limits.PreservesBinaryBiproduct
 -/
 
-/- warning: category_theory.limits.is_binary_bilimit_of_preserves -> CategoryTheory.Limits.isBinaryBilimitOfPreserves is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {b : CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y}, (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u1, u3} C _inst_1 _inst_3 X Y b) -> (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.mapBinaryBicone.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 X Y b))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {b : CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y}, (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u1, u3} C _inst_1 _inst_3 X Y b) -> (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.mapBinaryBicone.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 X Y b))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.is_binary_bilimit_of_preserves CategoryTheory.Limits.isBinaryBilimitOfPreservesₓ'. -/
 /-- A functor `F` preserves binary biproducts of `X` and `Y` if `F` maps every bilimit bicone over
     `X` and `Y` to a bilimit bicone over `F.obj X` and `F.obj Y`. -/
 def isBinaryBilimitOfPreserves {X Y : C} (F : C ⥤ D) [PreservesZeroMorphisms F]
@@ -266,48 +242,24 @@ section
 
 variable [HasBiproduct (F.obj ∘ f)]
 
-/- warning: category_theory.functor.biproduct_comparison -> CategoryTheory.Functor.biproductComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6)
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison CategoryTheory.Functor.biproductComparisonₓ'. -/
 /-- As for products, any functor between categories with biproducts gives rise to a morphism
     `F.obj (⨁ f) ⟶ ⨁ (F.obj ∘ f)`. -/
 def biproductComparison : F.obj (⨁ f) ⟶ ⨁ F.obj ∘ f :=
   biproduct.lift fun j => F.map (biproduct.π f j)
 #align category_theory.functor.biproduct_comparison CategoryTheory.Functor.biproductComparison
 
-/- warning: category_theory.functor.biproduct_comparison_π -> CategoryTheory.Functor.biproductComparison_π is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Limits.biproduct.π.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6 j)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Limits.biproduct.π.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_πₓ'. -/
 @[simp, reassoc]
 theorem biproductComparison_π (j : J) :
     biproductComparison F f ≫ biproduct.π _ j = F.map (biproduct.π f j) :=
   biproduct.lift_π _ _
 #align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_π
 
-/- warning: category_theory.functor.biproduct_comparison' -> CategoryTheory.Functor.biproductComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison' CategoryTheory.Functor.biproductComparison'ₓ'. -/
 /-- As for coproducts, any functor between categories with biproducts gives rise to a morphism
     `⨁ (F.obj ∘ f) ⟶ F.obj (⨁ f)` -/
 def biproductComparison' : ⨁ F.obj ∘ f ⟶ F.obj (⨁ f) :=
   biproduct.desc fun j => F.map (biproduct.ι f j)
 #align category_theory.functor.biproduct_comparison' CategoryTheory.Functor.biproductComparison'
 
-/- warning: category_theory.functor.ι_biproduct_comparison' -> CategoryTheory.Functor.ι_biproductComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.ι.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6 j) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.ι.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.ι_biproduct_comparison' CategoryTheory.Functor.ι_biproductComparison'ₓ'. -/
 @[simp, reassoc]
 theorem ι_biproductComparison' (j : J) :
     biproduct.ι _ j ≫ biproductComparison' F f = F.map (biproduct.ι f j) :=
@@ -316,12 +268,6 @@ theorem ι_biproductComparison' (j : J) :
 
 variable [PreservesZeroMorphisms F]
 
-/- warning: category_theory.functor.biproduct_comparison'_comp_biproduct_comparison -> CategoryTheory.Functor.biproductComparison'_comp_biproductComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
 @[simp, reassoc]
@@ -332,12 +278,6 @@ theorem biproductComparison'_comp_biproductComparison :
     simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
 
-/- warning: category_theory.functor.split_epi_biproduct_comparison -> CategoryTheory.Functor.splitEpiBiproductComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_epi_biproduct_comparison CategoryTheory.Functor.splitEpiBiproductComparisonₓ'. -/
 /-- `biproduct_comparison F f` is a split epimorphism. -/
 @[simps]
 def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) :=
@@ -347,12 +287,6 @@ def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) :=
 instance : IsSplitEpi (biproductComparison F f) :=
   IsSplitEpi.mk' (splitEpiBiproductComparison F f)
 
-/- warning: category_theory.functor.split_mono_biproduct_comparison' -> CategoryTheory.Functor.splitMonoBiproductComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u3, u5} D _inst_2 (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u3, u5} D _inst_2 (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_mono_biproduct_comparison' CategoryTheory.Functor.splitMonoBiproductComparison'ₓ'. -/
 /-- `biproduct_comparison' F f` is a split monomorphism. -/
 @[simps]
 def splitMonoBiproductComparison' : SplitMono (biproductComparison' F f) :=
@@ -366,24 +300,12 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBiproduct f F]
 
-/- warning: category_theory.functor.has_biproduct_of_preserves -> CategoryTheory.Functor.hasBiproduct_of_preserves is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preservesₓ'. -/
 instance hasBiproduct_of_preserves : HasBiproduct (F.obj ∘ f) :=
   HasBiproduct.mk
     { Bicone := F.mapBicone (biproduct.bicone f)
       IsBilimit := PreservesBiproduct.preserves (biproduct.isBilimit _) }
 #align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preserves
 
-/- warning: category_theory.functor.map_biproduct -> CategoryTheory.Functor.mapBiproduct is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Iso.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Iso.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproductₓ'. -/
 /-- If `F` preserves a biproduct, we get a definitionally nice isomorphism
     `F.obj (⨁ f) ≅ ⨁ (F.obj ∘ f)`. -/
 @[simp]
@@ -391,23 +313,11 @@ def mapBiproduct : F.obj (⨁ f) ≅ ⨁ F.obj ∘ f :=
   biproduct.uniqueUpToIso _ (PreservesBiproduct.preserves (biproduct.isBilimit _))
 #align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproduct
 
-/- warning: category_theory.functor.map_biproduct_hom -> CategoryTheory.Functor.mapBiproduct_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_homₓ'. -/
 theorem mapBiproduct_hom :
     (mapBiproduct F f).hom = biproduct.lift fun j => F.map (biproduct.π f j) :=
   rfl
 #align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_hom
 
-/- warning: category_theory.functor.map_biproduct_inv -> CategoryTheory.Functor.mapBiproduct_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct_inv CategoryTheory.Functor.mapBiproduct_invₓ'. -/
 theorem mapBiproduct_inv :
     (mapBiproduct F f).inv = biproduct.desc fun j => F.map (biproduct.ι f j) :=
   rfl
@@ -421,69 +331,33 @@ section
 
 variable [HasBinaryBiproduct (F.obj X) (F.obj Y)]
 
-/- warning: category_theory.functor.biprod_comparison -> CategoryTheory.Functor.biprodComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison CategoryTheory.Functor.biprodComparisonₓ'. -/
 /-- As for products, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y`. -/
 def biprodComparison : F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y :=
   biprod.lift (F.map biprod.fst) (F.map biprod.snd)
 #align category_theory.functor.biprod_comparison CategoryTheory.Functor.biprodComparison
 
-/- warning: category_theory.functor.biprod_comparison_fst -> CategoryTheory.Functor.biprodComparison_fst is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.fst.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.fst.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fstₓ'. -/
 @[simp, reassoc]
 theorem biprodComparison_fst : biprodComparison F X Y ≫ biprod.fst = F.map biprod.fst :=
   biprod.lift_fst _ _
 #align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fst
 
-/- warning: category_theory.functor.biprod_comparison_snd -> CategoryTheory.Functor.biprodComparison_snd is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.snd.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.snd.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_sndₓ'. -/
 @[simp, reassoc]
 theorem biprodComparison_snd : biprodComparison F X Y ≫ biprod.snd = F.map biprod.snd :=
   biprod.lift_snd _ _
 #align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_snd
 
-/- warning: category_theory.functor.biprod_comparison' -> CategoryTheory.Functor.biprodComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison' CategoryTheory.Functor.biprodComparison'ₓ'. -/
 /-- As for coproducts, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y)`. -/
 def biprodComparison' : F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y) :=
   biprod.desc (F.map biprod.inl) (F.map biprod.inr)
 #align category_theory.functor.biprod_comparison' CategoryTheory.Functor.biprodComparison'
 
-/- warning: category_theory.functor.inl_biprod_comparison' -> CategoryTheory.Functor.inl_biprodComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inl.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inl.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'ₓ'. -/
 @[simp, reassoc]
 theorem inl_biprodComparison' : biprod.inl ≫ biprodComparison' F X Y = F.map biprod.inl :=
   biprod.inl_desc _ _
 #align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'
 
-/- warning: category_theory.functor.inr_biprod_comparison' -> CategoryTheory.Functor.inr_biprodComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inr.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inr.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.inr_biprod_comparison' CategoryTheory.Functor.inr_biprodComparison'ₓ'. -/
 @[simp, reassoc]
 theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map biprod.inr :=
   biprod.inr_desc _ _
@@ -491,12 +365,6 @@ theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map b
 
 variable [PreservesZeroMorphisms F]
 
-/- warning: category_theory.functor.biprod_comparison'_comp_biprod_comparison -> CategoryTheory.Functor.biprodComparison'_comp_biprodComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_binary_biproduct_of_mono_biprod_comparison`. -/
 @[simp, reassoc]
@@ -505,12 +373,6 @@ theorem biprodComparison'_comp_biprodComparison :
   ext <;> simp [← functor.map_comp]
 #align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparison
 
-/- warning: category_theory.functor.split_epi_biprod_comparison -> CategoryTheory.Functor.splitEpiBiprodComparison is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_epi_biprod_comparison CategoryTheory.Functor.splitEpiBiprodComparisonₓ'. -/
 /-- `biprod_comparison F X Y` is a split epi. -/
 @[simps]
 def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) :=
@@ -520,12 +382,6 @@ def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) :=
 instance : IsSplitEpi (biprodComparison F X Y) :=
   IsSplitEpi.mk' (splitEpiBiprodComparison F X Y)
 
-/- warning: category_theory.functor.split_mono_biprod_comparison' -> CategoryTheory.Functor.splitMonoBiprodComparison' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u2, u4} D _inst_2 (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u2, u4} D _inst_2 (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_mono_biprod_comparison' CategoryTheory.Functor.splitMonoBiprodComparison'ₓ'. -/
 /-- `biprod_comparison' F X Y` is a split mono. -/
 @[simps]
 def splitMonoBiprodComparison' : SplitMono (biprodComparison' F X Y) :=
@@ -539,24 +395,12 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBinaryBiproduct X Y F]
 
-/- warning: category_theory.functor.has_binary_biproduct_of_preserves -> CategoryTheory.Functor.hasBinaryBiproduct_of_preserves is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preservesₓ'. -/
 instance hasBinaryBiproduct_of_preserves : HasBinaryBiproduct (F.obj X) (F.obj Y) :=
   HasBinaryBiproduct.mk
     { Bicone := F.mapBinaryBicone (BinaryBiproduct.bicone X Y)
       IsBilimit := PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _) }
 #align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preserves
 
-/- warning: category_theory.functor.map_biprod -> CategoryTheory.Functor.mapBiprod is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Iso.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Iso.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod CategoryTheory.Functor.mapBiprodₓ'. -/
 /-- If `F` preserves a binary biproduct, we get a definitionally nice isomorphism
     `F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y`. -/
 @[simp]
@@ -564,22 +408,10 @@ def mapBiprod : F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y :=
   biprod.uniqueUpToIso _ _ (PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _))
 #align category_theory.functor.map_biprod CategoryTheory.Functor.mapBiprod
 
-/- warning: category_theory.functor.map_biprod_hom -> CategoryTheory.Functor.mapBiprod_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod_hom CategoryTheory.Functor.mapBiprod_homₓ'. -/
 theorem mapBiprod_hom : (mapBiprod F X Y).hom = biprod.lift (F.map biprod.fst) (F.map biprod.snd) :=
   rfl
 #align category_theory.functor.map_biprod_hom CategoryTheory.Functor.mapBiprod_hom
 
-/- warning: category_theory.functor.map_biprod_inv -> CategoryTheory.Functor.mapBiprod_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod_inv CategoryTheory.Functor.mapBiprod_invₓ'. -/
 theorem mapBiprod_inv : (mapBiprod F X Y).inv = biprod.desc (F.map biprod.inl) (F.map biprod.inr) :=
   rfl
 #align category_theory.functor.map_biprod_inv CategoryTheory.Functor.mapBiprod_inv
@@ -594,25 +426,16 @@ section Bicone
 
 variable {J : Type w₁} (f : J → C) [HasBiproduct f] [PreservesBiproduct f F] {W : C}
 
-/- warning: category_theory.limits.biproduct.map_lift_map_biprod -> CategoryTheory.Limits.biproduct.map_lift_mapBiprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprodₓ'. -/
 theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
   ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
 
-/- warning: category_theory.limits.biproduct.map_biproduct_inv_map_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_descₓ'. -/
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
   ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
 
-/- warning: category_theory.limits.biproduct.map_biproduct_hom_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_hom_desc CategoryTheory.Limits.biproduct.mapBiproduct_hom_descₓ'. -/
 theorem biproduct.mapBiproduct_hom_desc (g : ∀ j, f j ⟶ W) :
     ((F.mapBiproduct f).hom ≫ biproduct.desc fun j => F.map (g j)) = F.map (biproduct.desc g) := by
   rw [← biproduct.map_biproduct_inv_map_desc, iso.hom_inv_id_assoc]
@@ -624,33 +447,21 @@ section BinaryBicone
 
 variable (X Y : C) [HasBinaryBiproduct X Y] [PreservesBinaryBiproduct X Y F] {W : C}
 
-/- warning: category_theory.limits.biprod.map_lift_map_biprod -> CategoryTheory.Limits.biprod.map_lift_mapBiprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprodₓ'. -/
 theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     F.map (biprod.lift f g) ≫ (F.mapBiprod X Y).hom = biprod.lift (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprod
 
-/- warning: category_theory.limits.biprod.lift_map_biprod -> CategoryTheory.Limits.biprod.lift_mapBiprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprodₓ'. -/
 theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     biprod.lift (F.map f) (F.map g) ≫ (F.mapBiprod X Y).inv = F.map (biprod.lift f g) := by
   rw [← biprod.map_lift_map_biprod, category.assoc, iso.hom_inv_id, category.comp_id]
 #align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprod
 
-/- warning: category_theory.limits.biprod.map_biprod_inv_map_desc -> CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_descₓ'. -/
 theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).inv ≫ F.map (biprod.desc f g) = biprod.desc (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
 
-/- warning: category_theory.limits.biprod.map_biprod_hom_desc -> CategoryTheory.Limits.biprod.mapBiprod_hom_desc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_hom_desc CategoryTheory.Limits.biprod.mapBiprod_hom_descₓ'. -/
 theorem biprod.mapBiprod_hom_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).hom ≫ biprod.desc (F.map f) (F.map g) = F.map (biprod.desc f g) := by
   rw [← biprod.map_biprod_inv_map_desc, iso.hom_inv_id_assoc]
Diff
@@ -233,16 +233,12 @@ def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMor
         IsLimit.ofIsoLimit
             ((IsLimit.postcomposeHomEquiv (diagram_iso_pair _) _).symm
               (isBilimitOfPreserves F (b.toBiconeIsBilimit.symm hb)).IsLimit) <|
-          Cones.ext (Iso.refl _) fun j => by
-            rcases j with ⟨⟨⟩⟩
-            tidy
+          Cones.ext (Iso.refl _) fun j => by rcases j with ⟨⟨⟩⟩; tidy
       IsColimit :=
         IsColimit.ofIsoColimit
             ((IsColimit.precomposeInvEquiv (diagram_iso_pair _) _).symm
               (isBilimitOfPreserves F (b.toBiconeIsBilimit.symm hb)).IsColimit) <|
-          Cocones.ext (Iso.refl _) fun j => by
-            rcases j with ⟨⟨⟩⟩
-            tidy }
+          Cocones.ext (Iso.refl _) fun j => by rcases j with ⟨⟨⟩⟩; tidy }
 #align category_theory.limits.preserves_binary_biproduct_of_preserves_biproduct CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBiproduct
 -/
 
@@ -602,20 +598,16 @@ variable {J : Type w₁} (f : J → C) [HasBiproduct f] [PreservesBiproduct f F]
 <too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprodₓ'. -/
 theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
-    F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) :=
-  by
-  ext
-  simp [← F.map_comp]
+    F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
+  ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
 
 /- warning: category_theory.limits.biproduct.map_biproduct_inv_map_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc is a dubious translation:
 <too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_descₓ'. -/
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
-    (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) :=
-  by
-  ext
-  simp [← F.map_comp]
+    (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
+  ext; simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
 
 /- warning: category_theory.limits.biproduct.map_biproduct_hom_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc is a dubious translation:
Diff
@@ -599,10 +599,7 @@ section Bicone
 variable {J : Type w₁} (f : J → C) [HasBiproduct f] [PreservesBiproduct f F] {W : C}
 
 /- warning: category_theory.limits.biproduct.map_lift_map_biprod -> CategoryTheory.Limits.biproduct.map_lift_mapBiprod is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) W (f j)), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6) (CategoryTheory.Limits.biproduct.lift.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6 W g)) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W (f j) (g j)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) W (f j)), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6) (CategoryTheory.Limits.biproduct.lift.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6 W g)) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W (f j) (g j)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprodₓ'. -/
 theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) :=
@@ -612,10 +609,7 @@ theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
 
 /- warning: category_theory.limits.biproduct.map_biproduct_inv_map_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) W (g j)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) W (g j)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_descₓ'. -/
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) :=
@@ -625,10 +619,7 @@ theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
 
 /- warning: category_theory.limits.biproduct.map_biproduct_hom_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) W (g j)))) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) W (g j)))) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (b : J) => f b) _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 (fun (b : J) => f b) _inst_6 W g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_hom_desc CategoryTheory.Limits.biproduct.mapBiproduct_hom_descₓ'. -/
 theorem biproduct.mapBiproduct_hom_desc (g : ∀ j, f j ⟶ W) :
     ((F.mapBiproduct f).hom ≫ biproduct.desc fun j => F.map (g j)) = F.map (biproduct.desc g) := by
@@ -642,10 +633,7 @@ section BinaryBicone
 variable (X Y : C) [HasBinaryBiproduct X Y] [PreservesBinaryBiproduct X Y F] {W : C}
 
 /- warning: category_theory.limits.biprod.map_lift_map_biprod -> CategoryTheory.Limits.biprod.map_lift_mapBiprod is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g)) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W X f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W Y g))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g)) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W X f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W Y g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprodₓ'. -/
 theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     F.map (biprod.lift f g) ≫ (F.mapBiprod X Y).hom = biprod.lift (F.map f) (F.map g) := by
@@ -653,10 +641,7 @@ theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
 #align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprod
 
 /- warning: category_theory.limits.biprod.lift_map_biprod -> CategoryTheory.Limits.biprod.lift_mapBiprod is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W X f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W Y g)) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W X f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W Y g)) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprodₓ'. -/
 theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     biprod.lift (F.map f) (F.map g) ≫ (F.mapBiprod X Y).inv = F.map (biprod.lift f g) := by
@@ -664,10 +649,7 @@ theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
 #align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprod
 
 /- warning: category_theory.limits.biprod.map_biprod_inv_map_desc -> CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X W f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y W g))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X W f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y W g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_descₓ'. -/
 theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).inv ≫ F.map (biprod.desc f g) = biprod.desc (F.map f) (F.map g) := by
@@ -675,10 +657,7 @@ theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
 #align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
 
 /- warning: category_theory.limits.biprod.map_biprod_hom_desc -> CategoryTheory.Limits.biprod.mapBiprod_hom_desc is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X W f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y W g))) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X W f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y W g))) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_hom_desc CategoryTheory.Limits.biprod.mapBiprod_hom_descₓ'. -/
 theorem biprod.mapBiprod_hom_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).hom ≫ biprod.desc (F.map f) (F.map g) = F.map (biprod.desc f g) := by
Diff
@@ -288,7 +288,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Limits.biproduct.π.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_πₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem biproductComparison_π (j : J) :
     biproductComparison F f ≫ biproduct.π _ j = F.map (biproduct.π f j) :=
   biproduct.lift_π _ _
@@ -312,7 +312,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.ι.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.ι_biproduct_comparison' CategoryTheory.Functor.ι_biproductComparison'ₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem ι_biproductComparison' (j : J) :
     biproduct.ι _ j ≫ biproductComparison' F f = F.map (biproduct.ι f j) :=
   biproduct.ι_desc _ _
@@ -328,7 +328,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem biproductComparison'_comp_biproductComparison :
     biproductComparison' F f ≫ biproductComparison F f = 𝟙 (⨁ F.obj ∘ f) := by
   classical
@@ -443,7 +443,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.fst.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fstₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem biprodComparison_fst : biprodComparison F X Y ≫ biprod.fst = F.map biprod.fst :=
   biprod.lift_fst _ _
 #align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fst
@@ -454,7 +454,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.snd.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_sndₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem biprodComparison_snd : biprodComparison F X Y ≫ biprod.snd = F.map biprod.snd :=
   biprod.lift_snd _ _
 #align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_snd
@@ -477,7 +477,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inl.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'ₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem inl_biprodComparison' : biprod.inl ≫ biprodComparison' F X Y = F.map biprod.inl :=
   biprod.inl_desc _ _
 #align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'
@@ -488,7 +488,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inr.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.inr_biprod_comparison' CategoryTheory.Functor.inr_biprodComparison'ₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map biprod.inr :=
   biprod.inr_desc _ _
 #align category_theory.functor.inr_biprod_comparison' CategoryTheory.Functor.inr_biprodComparison'
@@ -503,7 +503,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_binary_biproduct_of_mono_biprod_comparison`. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem biprodComparison'_comp_biprodComparison :
     biprodComparison' F X Y ≫ biprodComparison F X Y = 𝟙 (F.obj X ⊞ F.obj Y) := by
   ext <;> simp [← functor.map_comp]
Diff
@@ -149,7 +149,7 @@ class PreservesBiproductsOfShape (F : C ⥤ D) [PreservesZeroMorphisms F] where
 #align category_theory.limits.preserves_biproducts_of_shape CategoryTheory.Limits.PreservesBiproductsOfShape
 -/
 
-attribute [instance] preserves_biproducts_of_shape.preserves
+attribute [instance 100] preserves_biproducts_of_shape.preserves
 
 end Bicone
 
@@ -161,7 +161,7 @@ class PreservesFiniteBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
 #align category_theory.limits.preserves_finite_biproducts CategoryTheory.Limits.PreservesFiniteBiproducts
 -/
 
-attribute [instance] preserves_finite_biproducts.preserves
+attribute [instance 100] preserves_finite_biproducts.preserves
 
 #print CategoryTheory.Limits.PreservesBiproducts /-
 /-- A functor `F` preserves biproducts if it preserves biproducts of any shape `J` of size `w`.
@@ -172,7 +172,7 @@ class PreservesBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
 #align category_theory.limits.preserves_biproducts CategoryTheory.Limits.PreservesBiproducts
 -/
 
-attribute [instance] preserves_biproducts.preserves
+attribute [instance 100] preserves_biproducts.preserves
 
 #print CategoryTheory.Limits.preservesBiproductsShrink /-
 /-- Preserving biproducts at a bigger universe level implies preserving biproducts at a
@@ -254,7 +254,7 @@ def preservesBinaryBiproductsOfPreservesBiproducts (F : C ⥤ D) [PreservesZeroM
 #align category_theory.limits.preserves_binary_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts
 -/
 
-attribute [instance] preserves_binary_biproducts.preserves
+attribute [instance 100] preserves_binary_biproducts.preserves
 
 end Limits
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
 
 ! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.biproducts
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Zero
 /-!
 # Preservation of biproducts
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define the image of a (binary) bicone under a functor that preserves zero morphisms and define
 classes `preserves_biproduct` and `preserves_binary_biproduct`. We then
 
Diff
@@ -52,6 +52,12 @@ section Bicone
 
 variable {J : Type w₁}
 
+/- warning: category_theory.functor.map_bicone -> CategoryTheory.Functor.mapBicone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} {f : J -> C}, (CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f) -> (CategoryTheory.Limits.Bicone.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} {f : J -> C}, (CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f) -> (CategoryTheory.Limits.Bicone.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_bicone CategoryTheory.Functor.mapBiconeₓ'. -/
 /-- The image of a bicone under a functor. -/
 @[simps]
 def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
@@ -67,13 +73,21 @@ def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
     · rw [bicone_ι_π_ne _ h, F.map_zero]
 #align category_theory.functor.map_bicone CategoryTheory.Functor.mapBicone
 
+#print CategoryTheory.Functor.mapBicone_whisker /-
 theorem mapBicone_whisker {K : Type w₂} {g : K ≃ J} {f : J → C} (c : Bicone f) :
     F.mapBicone (c.whisker g) = (F.mapBicone c).whisker g :=
   rfl
 #align category_theory.functor.map_bicone_whisker CategoryTheory.Functor.mapBicone_whisker
+-/
 
 end Bicone
 
+/- warning: category_theory.functor.map_binary_bicone -> CategoryTheory.Functor.mapBinaryBicone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {X : C} {Y : C}, (CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y) -> (CategoryTheory.Limits.BinaryBicone.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {X : C} {Y : C}, (CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y) -> (CategoryTheory.Limits.BinaryBicone.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_binary_bicone CategoryTheory.Functor.mapBinaryBiconeₓ'. -/
 /-- The image of a binary bicone under a functor. -/
 @[simps]
 def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y)
@@ -83,10 +97,10 @@ def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F
   snd := F.map b.snd
   inl := F.map b.inl
   inr := F.map b.inr
-  inl_fst' := by rw [← F.map_comp, b.inl_fst, F.map_id]
-  inl_snd' := by rw [← F.map_comp, b.inl_snd, F.map_zero]
-  inr_fst' := by rw [← F.map_comp, b.inr_fst, F.map_zero]
-  inr_snd' := by rw [← F.map_comp, b.inr_snd, F.map_id]
+  inl_fst := by rw [← F.map_comp, b.inl_fst, F.map_id]
+  inl_snd := by rw [← F.map_comp, b.inl_snd, F.map_zero]
+  inr_fst := by rw [← F.map_comp, b.inr_fst, F.map_zero]
+  inr_snd := by rw [← F.map_comp, b.inr_snd, F.map_id]
 #align category_theory.functor.map_binary_bicone CategoryTheory.Functor.mapBinaryBicone
 
 end Map
@@ -101,12 +115,20 @@ section Bicone
 
 variable {J : Type w₁} {K : Type w₂}
 
+#print CategoryTheory.Limits.PreservesBiproduct /-
 /-- A functor `F` preserves biproducts of `f` if `F` maps every bilimit bicone over `f` to a
     bilimit bicone over `F.obj ∘ f`. -/
 class PreservesBiproduct (f : J → C) (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {b : Bicone f}, b.IsBilimit → (F.mapBicone b).IsBilimit
 #align category_theory.limits.preserves_biproduct CategoryTheory.Limits.PreservesBiproduct
+-/
 
+/- warning: category_theory.limits.is_bilimit_of_preserves -> CategoryTheory.Limits.isBilimitOfPreserves is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} {f : J -> C} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {b : CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f}, (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u2, u4} J C _inst_1 _inst_3 f b) -> (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.mapBicone.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 J f b))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} {f : J -> C} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {b : CategoryTheory.Limits.Bicone.{u1, u2, u4} J C _inst_1 _inst_3 f}, (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u2, u4} J C _inst_1 _inst_3 f b) -> (CategoryTheory.Limits.Bicone.IsBilimit.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.mapBicone.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 J f b))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.is_bilimit_of_preserves CategoryTheory.Limits.isBilimitOfPreservesₓ'. -/
 /-- A functor `F` preserves biproducts of `f` if `F` maps every bilimit bicone over `f` to a
     bilimit bicone over `F.obj ∘ f`. -/
 def isBilimitOfPreserves {f : J → C} (F : C ⥤ D) [PreservesZeroMorphisms F] [PreservesBiproduct f F]
@@ -116,33 +138,40 @@ def isBilimitOfPreserves {f : J → C} (F : C ⥤ D) [PreservesZeroMorphisms F]
 
 variable (J)
 
+#print CategoryTheory.Limits.PreservesBiproductsOfShape /-
 /-- A functor `F` preserves biproducts of shape `J` if it preserves biproducts of `f` for every
     `f : J → C`. -/
 class PreservesBiproductsOfShape (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {f : J → C}, PreservesBiproduct f F
 #align category_theory.limits.preserves_biproducts_of_shape CategoryTheory.Limits.PreservesBiproductsOfShape
+-/
 
 attribute [instance] preserves_biproducts_of_shape.preserves
 
 end Bicone
 
+#print CategoryTheory.Limits.PreservesFiniteBiproducts /-
 /-- A functor `F` preserves finite biproducts if it preserves biproducts of shape `J` whenever
     `J` is a fintype. -/
 class PreservesFiniteBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {J : Type} [Fintype J], PreservesBiproductsOfShape J F
 #align category_theory.limits.preserves_finite_biproducts CategoryTheory.Limits.PreservesFiniteBiproducts
+-/
 
 attribute [instance] preserves_finite_biproducts.preserves
 
+#print CategoryTheory.Limits.PreservesBiproducts /-
 /-- A functor `F` preserves biproducts if it preserves biproducts of any shape `J` of size `w`.
     The usual notion of preservation of biproducts is recovered by choosing `w` to be the universe
     of the morphisms of `C`. -/
 class PreservesBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {J : Type w₁}, PreservesBiproductsOfShape J F
 #align category_theory.limits.preserves_biproducts CategoryTheory.Limits.PreservesBiproducts
+-/
 
 attribute [instance] preserves_biproducts.preserves
 
+#print CategoryTheory.Limits.preservesBiproductsShrink /-
 /-- Preserving biproducts at a bigger universe level implies preserving biproducts at a
 smaller universe level. -/
 def preservesBiproductsShrink (F : C ⥤ D) [PreservesZeroMorphisms F]
@@ -153,18 +182,29 @@ def preservesBiproductsShrink (F : C ⥤ D) [PreservesZeroMorphisms F]
         ((F.mapBicone b).whiskerIsBilimitIff _).toFun
           (isBilimitOfPreserves F ((b.whiskerIsBilimitIff Equiv.ulift.{w₂}).invFun ib))⟩⟩⟩
 #align category_theory.limits.preserves_biproducts_shrink CategoryTheory.Limits.preservesBiproductsShrink
+-/
 
+#print CategoryTheory.Limits.preservesFiniteBiproductsOfPreservesBiproducts /-
 instance (priority := 100) preservesFiniteBiproductsOfPreservesBiproducts (F : C ⥤ D)
     [PreservesZeroMorphisms F] [PreservesBiproducts.{w₁} F] : PreservesFiniteBiproducts F
     where preserves J _ := by letI := preservesBiproductsShrink.{0} F <;> infer_instance
 #align category_theory.limits.preserves_finite_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesFiniteBiproductsOfPreservesBiproducts
+-/
 
+#print CategoryTheory.Limits.PreservesBinaryBiproduct /-
 /-- A functor `F` preserves binary biproducts of `X` and `Y` if `F` maps every bilimit bicone over
     `X` and `Y` to a bilimit bicone over `F.obj X` and `F.obj Y`. -/
 class PreservesBinaryBiproduct (X Y : C) (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {b : BinaryBicone X Y}, b.IsBilimit → (F.mapBinaryBicone b).IsBilimit
 #align category_theory.limits.preserves_binary_biproduct CategoryTheory.Limits.PreservesBinaryBiproduct
+-/
 
+/- warning: category_theory.limits.is_binary_bilimit_of_preserves -> CategoryTheory.Limits.isBinaryBilimitOfPreserves is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {b : CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y}, (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u1, u3} C _inst_1 _inst_3 X Y b) -> (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.mapBinaryBicone.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 X Y b))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_6 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {b : CategoryTheory.Limits.BinaryBicone.{u1, u3} C _inst_1 _inst_3 X Y}, (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u1, u3} C _inst_1 _inst_3 X Y b) -> (CategoryTheory.Limits.BinaryBicone.IsBilimit.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.mapBinaryBicone.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 X Y b))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.is_binary_bilimit_of_preserves CategoryTheory.Limits.isBinaryBilimitOfPreservesₓ'. -/
 /-- A functor `F` preserves binary biproducts of `X` and `Y` if `F` maps every bilimit bicone over
     `X` and `Y` to a bilimit bicone over `F.obj X` and `F.obj Y`. -/
 def isBinaryBilimitOfPreserves {X Y : C} (F : C ⥤ D) [PreservesZeroMorphisms F]
@@ -173,12 +213,15 @@ def isBinaryBilimitOfPreserves {X Y : C} (F : C ⥤ D) [PreservesZeroMorphisms F
   PreservesBinaryBiproduct.preserves hb
 #align category_theory.limits.is_binary_bilimit_of_preserves CategoryTheory.Limits.isBinaryBilimitOfPreserves
 
+#print CategoryTheory.Limits.PreservesBinaryBiproducts /-
 /-- A functor `F` preserves binary biproducts if it preserves the binary biproduct of `X` and `Y`
     for all `X` and `Y`. -/
 class PreservesBinaryBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {X Y : C}, PreservesBinaryBiproduct X Y F := by infer_instance
 #align category_theory.limits.preserves_binary_biproducts CategoryTheory.Limits.PreservesBinaryBiproducts
+-/
 
+#print CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBiproduct /-
 /-- A functor that preserves biproducts of a pair preserves binary biproducts. -/
 def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMorphisms F] (X Y : C)
     [PreservesBiproduct (pairFunction X Y) F] : PreservesBinaryBiproduct X Y F
@@ -198,12 +241,15 @@ def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMor
             rcases j with ⟨⟨⟩⟩
             tidy }
 #align category_theory.limits.preserves_binary_biproduct_of_preserves_biproduct CategoryTheory.Limits.preservesBinaryBiproductOfPreservesBiproduct
+-/
 
+#print CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts /-
 /-- A functor that preserves biproducts of a pair preserves binary biproducts. -/
 def preservesBinaryBiproductsOfPreservesBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F]
     [PreservesBiproductsOfShape WalkingPair F] : PreservesBinaryBiproducts F
     where preserves X Y := preservesBinaryBiproductOfPreservesBiproduct F X Y
 #align category_theory.limits.preserves_binary_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts
+-/
 
 attribute [instance] preserves_binary_biproducts.preserves
 
@@ -221,24 +267,48 @@ section
 
 variable [HasBiproduct (F.obj ∘ f)]
 
+/- warning: category_theory.functor.biproduct_comparison -> CategoryTheory.Functor.biproductComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6)
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison CategoryTheory.Functor.biproductComparisonₓ'. -/
 /-- As for products, any functor between categories with biproducts gives rise to a morphism
     `F.obj (⨁ f) ⟶ ⨁ (F.obj ∘ f)`. -/
 def biproductComparison : F.obj (⨁ f) ⟶ ⨁ F.obj ∘ f :=
   biproduct.lift fun j => F.map (biproduct.π f j)
 #align category_theory.functor.biproduct_comparison CategoryTheory.Functor.biproductComparison
 
+/- warning: category_theory.functor.biproduct_comparison_π -> CategoryTheory.Functor.biproductComparison_π is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Limits.biproduct.π.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6 j)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Limits.biproduct.π.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_πₓ'. -/
 @[simp, reassoc.1]
 theorem biproductComparison_π (j : J) :
     biproductComparison F f ≫ biproduct.π _ j = F.map (biproduct.π f j) :=
   biproduct.lift_π _ _
 #align category_theory.functor.biproduct_comparison_π CategoryTheory.Functor.biproductComparison_π
 
+/- warning: category_theory.functor.biproduct_comparison' -> CategoryTheory.Functor.biproductComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)], Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison' CategoryTheory.Functor.biproductComparison'ₓ'. -/
 /-- As for coproducts, any functor between categories with biproducts gives rise to a morphism
     `⨁ (F.obj ∘ f) ⟶ F.obj (⨁ f)` -/
 def biproductComparison' : ⨁ F.obj ∘ f ⟶ F.obj (⨁ f) :=
   biproduct.desc fun j => F.map (biproduct.ι f j)
 #align category_theory.functor.biproduct_comparison' CategoryTheory.Functor.biproductComparison'
 
+/- warning: category_theory.functor.ι_biproduct_comparison' -> CategoryTheory.Functor.ι_biproductComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f j) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.ι.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6 j) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f j) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.ι.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6 j) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.ι_biproduct_comparison' CategoryTheory.Functor.ι_biproductComparison'ₓ'. -/
 @[simp, reassoc.1]
 theorem ι_biproductComparison' (j : J) :
     biproduct.ι _ j ≫ biproductComparison' F f = F.map (biproduct.ι f j) :=
@@ -247,6 +317,12 @@ theorem ι_biproductComparison' (j : J) :
 
 variable [PreservesZeroMorphisms F]
 
+/- warning: category_theory.functor.biproduct_comparison'_comp_biproduct_comparison -> CategoryTheory.Functor.biproductComparison'_comp_biproductComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_biproduct_of_mono_biproduct_comparison`.  -/
 @[simp, reassoc.1]
@@ -257,6 +333,12 @@ theorem biproductComparison'_comp_biproductComparison :
     simp [biproduct.ι_π, ← functor.map_comp, eq_to_hom_map]
 #align category_theory.functor.biproduct_comparison'_comp_biproduct_comparison CategoryTheory.Functor.biproductComparison'_comp_biproductComparison
 
+/- warning: category_theory.functor.split_epi_biproduct_comparison -> CategoryTheory.Functor.splitEpiBiproductComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (CategoryTheory.Functor.biproductComparison.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_epi_biproduct_comparison CategoryTheory.Functor.splitEpiBiproductComparisonₓ'. -/
 /-- `biproduct_comparison F f` is a split epimorphism. -/
 @[simps]
 def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) :=
@@ -266,6 +348,12 @@ def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) :=
 instance : IsSplitEpi (biproductComparison F f) :=
   IsSplitEpi.mk' (splitEpiBiproductComparison F f)
 
+/- warning: category_theory.functor.split_mono_biproduct_comparison' -> CategoryTheory.Functor.splitMonoBiproductComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u3, u5} D _inst_2 (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) _inst_6) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u3, u5} D _inst_2 (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) _inst_6) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Functor.biproductComparison'.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_mono_biproduct_comparison' CategoryTheory.Functor.splitMonoBiproductComparison'ₓ'. -/
 /-- `biproduct_comparison' F f` is a split monomorphism. -/
 @[simps]
 def splitMonoBiproductComparison' : SplitMono (biproductComparison' F f) :=
@@ -279,24 +367,48 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBiproduct f F]
 
+/- warning: category_theory.functor.has_biproduct_of_preserves -> CategoryTheory.Functor.hasBiproduct_of_preserves is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f)
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Limits.HasBiproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preservesₓ'. -/
 instance hasBiproduct_of_preserves : HasBiproduct (F.obj ∘ f) :=
   HasBiproduct.mk
-    { Bicone := F.mapBicone (Biproduct.bicone f)
-      IsBilimit := PreservesBiproduct.preserves (Biproduct.isBilimit _) }
+    { Bicone := F.mapBicone (biproduct.bicone f)
+      IsBilimit := PreservesBiproduct.preserves (biproduct.isBilimit _) }
 #align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preserves
 
+/- warning: category_theory.functor.map_biproduct -> CategoryTheory.Functor.mapBiproduct is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Iso.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], CategoryTheory.Iso.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproductₓ'. -/
 /-- If `F` preserves a biproduct, we get a definitionally nice isomorphism
     `F.obj (⨁ f) ≅ ⨁ (F.obj ∘ f)`. -/
 @[simp]
 def mapBiproduct : F.obj (⨁ f) ≅ ⨁ F.obj ∘ f :=
-  biproduct.uniqueUpToIso _ (PreservesBiproduct.preserves (Biproduct.isBilimit _))
+  biproduct.uniqueUpToIso _ (PreservesBiproduct.preserves (biproduct.isBilimit _))
 #align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproduct
 
+/- warning: category_theory.functor.map_biproduct_hom -> CategoryTheory.Functor.mapBiproduct_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (f j) (CategoryTheory.Limits.biproduct.π.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_homₓ'. -/
 theorem mapBiproduct_hom :
     (mapBiproduct F f).hom = biproduct.lift fun j => F.map (biproduct.π f j) :=
   rfl
 #align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_hom
 
+/- warning: category_theory.functor.map_biproduct_inv -> CategoryTheory.Functor.mapBiproduct_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] {J : Type.{u1}} (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) (f : J -> C) [_inst_5 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_6], Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5))) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_5 _inst_6 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5)) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5) (CategoryTheory.Limits.biproduct.ι.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_5 j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biproduct_inv CategoryTheory.Functor.mapBiproduct_invₓ'. -/
 theorem mapBiproduct_inv :
     (mapBiproduct F f).inv = biproduct.desc fun j => F.map (biproduct.ι f j) :=
   rfl
@@ -310,33 +422,69 @@ section
 
 variable [HasBinaryBiproduct (F.obj X) (F.obj Y)]
 
+/- warning: category_theory.functor.biprod_comparison -> CategoryTheory.Functor.biprodComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison CategoryTheory.Functor.biprodComparisonₓ'. -/
 /-- As for products, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y`. -/
 def biprodComparison : F.obj (X ⊞ Y) ⟶ F.obj X ⊞ F.obj Y :=
   biprod.lift (F.map biprod.fst) (F.map biprod.snd)
 #align category_theory.functor.biprod_comparison CategoryTheory.Functor.biprodComparison
 
+/- warning: category_theory.functor.biprod_comparison_fst -> CategoryTheory.Functor.biprodComparison_fst is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.fst.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.fst.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fstₓ'. -/
 @[simp, reassoc.1]
 theorem biprodComparison_fst : biprodComparison F X Y ≫ biprod.fst = F.map biprod.fst :=
   biprod.lift_fst _ _
 #align category_theory.functor.biprod_comparison_fst CategoryTheory.Functor.biprodComparison_fst
 
+/- warning: category_theory.functor.biprod_comparison_snd -> CategoryTheory.Functor.biprodComparison_snd is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.snd.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Limits.biprod.snd.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_sndₓ'. -/
 @[simp, reassoc.1]
 theorem biprodComparison_snd : biprodComparison F X Y ≫ biprod.snd = F.map biprod.snd :=
   biprod.lift_snd _ _
 #align category_theory.functor.biprod_comparison_snd CategoryTheory.Functor.biprodComparison_snd
 
+/- warning: category_theory.functor.biprod_comparison' -> CategoryTheory.Functor.biprodComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison' CategoryTheory.Functor.biprodComparison'ₓ'. -/
 /-- As for coproducts, any functor between categories with binary biproducts gives rise to a
     morphism `F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y)`. -/
 def biprodComparison' : F.obj X ⊞ F.obj Y ⟶ F.obj (X ⊞ Y) :=
   biprod.desc (F.map biprod.inl) (F.map biprod.inr)
 #align category_theory.functor.biprod_comparison' CategoryTheory.Functor.biprodComparison'
 
+/- warning: category_theory.functor.inl_biprod_comparison' -> CategoryTheory.Functor.inl_biprodComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inl.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inl.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'ₓ'. -/
 @[simp, reassoc.1]
 theorem inl_biprodComparison' : biprod.inl ≫ biprodComparison' F X Y = F.map biprod.inl :=
   biprod.inl_desc _ _
 #align category_theory.functor.inl_biprod_comparison' CategoryTheory.Functor.inl_biprodComparison'
 
+/- warning: category_theory.functor.inr_biprod_comparison' -> CategoryTheory.Functor.inr_biprodComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inr.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.inr.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.inr_biprod_comparison' CategoryTheory.Functor.inr_biprodComparison'ₓ'. -/
 @[simp, reassoc.1]
 theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map biprod.inr :=
   biprod.inr_desc _ _
@@ -344,6 +492,12 @@ theorem inr_biprodComparison' : biprod.inr ≫ biprodComparison' F X Y = F.map b
 
 variable [PreservesZeroMorphisms F]
 
+/- warning: category_theory.functor.biprod_comparison'_comp_biprod_comparison -> CategoryTheory.Functor.biprodComparison'_comp_biprodComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)) (CategoryTheory.CategoryStruct.id.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparisonₓ'. -/
 /-- The composition in the opposite direction is equal to the identity if and only if `F` preserves
     the biproduct, see `preserves_binary_biproduct_of_mono_biprod_comparison`. -/
 @[simp, reassoc.1]
@@ -352,6 +506,12 @@ theorem biprodComparison'_comp_biprodComparison :
   ext <;> simp [← functor.map_comp]
 #align category_theory.functor.biprod_comparison'_comp_biprod_comparison CategoryTheory.Functor.biprodComparison'_comp_biprodComparison
 
+/- warning: category_theory.functor.split_epi_biprod_comparison -> CategoryTheory.Functor.splitEpiBiprodComparison is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitEpi.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (CategoryTheory.Functor.biprodComparison.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_epi_biprod_comparison CategoryTheory.Functor.splitEpiBiprodComparisonₓ'. -/
 /-- `biprod_comparison F X Y` is a split epi. -/
 @[simps]
 def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) :=
@@ -361,6 +521,12 @@ def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) :=
 instance : IsSplitEpi (biprodComparison F X Y) :=
   IsSplitEpi.mk' (splitEpiBiprodComparison F X Y)
 
+/- warning: category_theory.functor.split_mono_biprod_comparison' -> CategoryTheory.Functor.splitMonoBiprodComparison' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u2, u4} D _inst_2 (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) _inst_6) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)] [_inst_7 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F], CategoryTheory.SplitMono.{u2, u4} D _inst_2 (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) _inst_6) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.biprodComparison'.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.split_mono_biprod_comparison' CategoryTheory.Functor.splitMonoBiprodComparison'ₓ'. -/
 /-- `biprod_comparison' F X Y` is a split mono. -/
 @[simps]
 def splitMonoBiprodComparison' : SplitMono (biprodComparison' F X Y) :=
@@ -374,12 +540,24 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBinaryBiproduct X Y F]
 
+/- warning: category_theory.functor.has_binary_biproduct_of_preserves -> CategoryTheory.Functor.hasBinaryBiproduct_of_preserves is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Limits.HasBinaryBiproduct.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preservesₓ'. -/
 instance hasBinaryBiproduct_of_preserves : HasBinaryBiproduct (F.obj X) (F.obj Y) :=
   HasBinaryBiproduct.mk
     { Bicone := F.mapBinaryBicone (BinaryBiproduct.bicone X Y)
       IsBilimit := PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _) }
 #align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preserves
 
+/- warning: category_theory.functor.map_biprod -> CategoryTheory.Functor.mapBiprod is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Iso.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], CategoryTheory.Iso.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod CategoryTheory.Functor.mapBiprodₓ'. -/
 /-- If `F` preserves a binary biproduct, we get a definitionally nice isomorphism
     `F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y`. -/
 @[simp]
@@ -387,10 +565,22 @@ def mapBiprod : F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y :=
   biprod.uniqueUpToIso _ _ (PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _))
 #align category_theory.functor.map_biprod CategoryTheory.Functor.mapBiprod
 
+/- warning: category_theory.functor.map_biprod_hom -> CategoryTheory.Functor.mapBiprod_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7))) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) X (CategoryTheory.Limits.biprod.fst.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) Y (CategoryTheory.Limits.biprod.snd.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod_hom CategoryTheory.Functor.mapBiprod_homₓ'. -/
 theorem mapBiprod_hom : (mapBiprod F X Y).hom = biprod.lift (F.map biprod.fst) (F.map biprod.snd) :=
   rfl
 #align category_theory.functor.map_biprod_hom CategoryTheory.Functor.mapBiprod_hom
 
+/- warning: category_theory.functor.map_biprod_inv -> CategoryTheory.Functor.mapBiprod_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) (X : C) (Y : C) [_inst_5 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_6 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_6], Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5))) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_5 _inst_6 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inl.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_5) (CategoryTheory.Limits.biprod.inr.{u1, u3} C _inst_1 _inst_3 X Y _inst_5)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_biprod_inv CategoryTheory.Functor.mapBiprod_invₓ'. -/
 theorem mapBiprod_inv : (mapBiprod F X Y).inv = biprod.desc (F.map biprod.inl) (F.map biprod.inr) :=
   rfl
 #align category_theory.functor.map_biprod_inv CategoryTheory.Functor.mapBiprod_inv
@@ -405,13 +595,25 @@ section Bicone
 
 variable {J : Type w₁} (f : J → C) [HasBiproduct f] [PreservesBiproduct f F] {W : C}
 
-theorem biproduct.map_lift_map_biprod (g : ∀ j, W ⟶ f j) :
+/- warning: category_theory.limits.biproduct.map_lift_map_biprod -> CategoryTheory.Limits.biproduct.map_lift_mapBiprod is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) W (f j)), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6) (CategoryTheory.Limits.biproduct.lift.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6 W g)) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W (f j) (g j)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) W (f j)), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6) (CategoryTheory.Limits.biproduct.lift.{u1, u2, u4} J C _inst_1 _inst_3 (fun (j : J) => f j) _inst_6 W g)) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biproduct.lift.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W (f j) (g j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprodₓ'. -/
+theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) :=
   by
   ext
   simp [← F.map_comp]
-#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_map_biprod
-
+#align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
+
+/- warning: category_theory.limits.biproduct.map_biproduct_inv_map_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) W (g j)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.inv.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (fun (j : J) => Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j)) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) W (g j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_descₓ'. -/
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) :=
   by
@@ -419,6 +621,12 @@ theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
   simp [← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
 
+/- warning: category_theory.limits.biproduct.map_biproduct_hom_desc -> CategoryTheory.Limits.biproduct.mapBiproduct_hom_desc is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.obj.{u2, u3, u4, u5} C _inst_1 D _inst_2 F W) (fun (j : J) => CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (f j) W (g j)))) (CategoryTheory.Functor.map.{u2, u3, u4, u5} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6 W g))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u3, u5} D _inst_2] (F : CategoryTheory.Functor.{u2, u3, u4, u5} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 F] {J : Type.{u1}} (f : J -> C) [_inst_6 : CategoryTheory.Limits.HasBiproduct.{u1, u2, u4} J C _inst_1 _inst_3 f] [_inst_7 : CategoryTheory.Limits.PreservesBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J f F _inst_5] {W : C} (g : forall (j : J), Quiver.Hom.{succ u2, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) (f j) W), Eq.{succ u3} (Quiver.Hom.{succ u3, u5} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.hom.{u3, u5} D _inst_2 (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 f _inst_6)) (CategoryTheory.Limits.biproduct.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiproduct.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biproduct.desc.{u1, u3, u5} J D _inst_2 _inst_4 (Function.comp.{succ u1, succ u4, succ u5} J C D (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F)) f) (CategoryTheory.Functor.hasBiproduct_of_preserves.{u1, u2, u3, u4, u5} C _inst_1 D _inst_2 _inst_3 _inst_4 J F f _inst_6 _inst_5 _inst_7) (Prefunctor.obj.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) W) (fun (j : J) => Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (f j) W (g j)))) (Prefunctor.map.{succ u2, succ u3, u4, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} C (CategoryTheory.Category.toCategoryStruct.{u2, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} D (CategoryTheory.Category.toCategoryStruct.{u3, u5} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biproduct.{u1, u2, u4} J C _inst_1 _inst_3 (fun (b : J) => f b) _inst_6) W (CategoryTheory.Limits.biproduct.desc.{u1, u2, u4} J C _inst_1 _inst_3 (fun (b : J) => f b) _inst_6 W g))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biproduct.map_biproduct_hom_desc CategoryTheory.Limits.biproduct.mapBiproduct_hom_descₓ'. -/
 theorem biproduct.mapBiproduct_hom_desc (g : ∀ j, f j ⟶ W) :
     ((F.mapBiproduct f).hom ≫ biproduct.desc fun j => F.map (g j)) = F.map (biproduct.desc g) := by
   rw [← biproduct.map_biproduct_inv_map_desc, iso.hom_inv_id_assoc]
@@ -430,21 +638,45 @@ section BinaryBicone
 
 variable (X Y : C) [HasBinaryBiproduct X Y] [PreservesBinaryBiproduct X Y F] {W : C}
 
+/- warning: category_theory.limits.biprod.map_lift_map_biprod -> CategoryTheory.Limits.biprod.map_lift_mapBiprod is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g)) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W X f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W Y g))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g)) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W X f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W Y g))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprodₓ'. -/
 theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     F.map (biprod.lift f g) ≫ (F.mapBiprod X Y).hom = biprod.lift (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprod
 
+/- warning: category_theory.limits.biprod.lift_map_biprod -> CategoryTheory.Limits.biprod.lift_mapBiprod is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W X f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W Y g)) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W X) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) W Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6))) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.lift.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W X f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W Y g)) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7))) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) (CategoryTheory.Limits.biprod.lift.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprodₓ'. -/
 theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     biprod.lift (F.map f) (F.map g) ≫ (F.mapBiprod X Y).inv = F.map (biprod.lift f g) := by
   rw [← biprod.map_lift_map_biprod, category.assoc, iso.hom_inv_id, category.comp_id]
 #align category_theory.limits.biprod.lift_map_biprod CategoryTheory.Limits.biprod.lift_mapBiprod
 
+/- warning: category_theory.limits.biprod.map_biprod_inv_map_desc -> CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X W f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y W g))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.inv.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X W f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y W g))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_descₓ'. -/
 theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).inv ≫ F.map (biprod.desc f g) = biprod.desc (F.map f) (F.map g) := by
   ext <;> simp [← F.map_comp]
 #align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
 
+/- warning: category_theory.limits.biprod.map_biprod_hom_desc -> CategoryTheory.Limits.biprod.mapBiprod_hom_desc is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F W) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F X W f) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F Y W g))) (CategoryTheory.Functor.map.{u1, u2, u3, u4} C _inst_1 D _inst_2 F (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] [_inst_3 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u3} C _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u4} D _inst_2] (F : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Functor.PreservesZeroMorphisms.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F] (X : C) (Y : C) [_inst_6 : CategoryTheory.Limits.HasBinaryBiproduct.{u1, u3} C _inst_1 _inst_3 X Y] [_inst_7 : CategoryTheory.Limits.PreservesBinaryBiproduct.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 X Y F _inst_5] {W : C} (f : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) X W) (g : Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) Y W), Eq.{succ u2} (Quiver.Hom.{succ u2, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W)) (CategoryTheory.CategoryStruct.comp.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (CategoryTheory.Iso.hom.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6)) (CategoryTheory.Limits.biprod.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Functor.mapBiprod.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7)) (CategoryTheory.Limits.biprod.desc.{u2, u4} D _inst_2 _inst_4 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) W) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y) (CategoryTheory.Functor.hasBinaryBiproduct_of_preserves.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 F X Y _inst_6 _inst_5 _inst_7) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) X W f) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) Y W g))) (Prefunctor.map.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 F) (CategoryTheory.Limits.biprod.{u1, u3} C _inst_1 _inst_3 X Y _inst_6) W (CategoryTheory.Limits.biprod.desc.{u1, u3} C _inst_1 _inst_3 W X Y _inst_6 f g))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.biprod.map_biprod_hom_desc CategoryTheory.Limits.biprod.mapBiprod_hom_descₓ'. -/
 theorem biprod.mapBiprod_hom_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).hom ≫ biprod.desc (F.map f) (F.map g) = F.map (biprod.desc f g) := by
   rw [← biprod.map_biprod_inv_map_desc, iso.hom_inv_id_assoc]
Diff
@@ -56,7 +56,7 @@ variable {J : Type w₁}
 @[simps]
 def mapBicone {f : J → C} (b : Bicone f) : Bicone (F.obj ∘ f)
     where
-  x := F.obj b.x
+  pt := F.obj b.pt
   π j := F.map (b.π j)
   ι j := F.map (b.ι j)
   ι_π j j' := by
@@ -78,7 +78,7 @@ end Bicone
 @[simps]
 def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y)
     where
-  x := F.obj b.x
+  pt := F.obj b.pt
   fst := F.map b.fst
   snd := F.map b.snd
   inl := F.map b.inl
Diff
@@ -279,11 +279,11 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBiproduct f F]
 
-instance hasBiproductOfPreserves : HasBiproduct (F.obj ∘ f) :=
+instance hasBiproduct_of_preserves : HasBiproduct (F.obj ∘ f) :=
   HasBiproduct.mk
     { Bicone := F.mapBicone (Biproduct.bicone f)
       IsBilimit := PreservesBiproduct.preserves (Biproduct.isBilimit _) }
-#align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproductOfPreserves
+#align category_theory.functor.has_biproduct_of_preserves CategoryTheory.Functor.hasBiproduct_of_preserves
 
 /-- If `F` preserves a biproduct, we get a definitionally nice isomorphism
     `F.obj (⨁ f) ≅ ⨁ (F.obj ∘ f)`. -/
@@ -374,11 +374,11 @@ end
 
 variable [PreservesZeroMorphisms F] [PreservesBinaryBiproduct X Y F]
 
-instance hasBinaryBiproductOfPreserves : HasBinaryBiproduct (F.obj X) (F.obj Y) :=
+instance hasBinaryBiproduct_of_preserves : HasBinaryBiproduct (F.obj X) (F.obj Y) :=
   HasBinaryBiproduct.mk
     { Bicone := F.mapBinaryBicone (BinaryBiproduct.bicone X Y)
       IsBilimit := PreservesBinaryBiproduct.preserves (BinaryBiproduct.isBilimit _ _) }
-#align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproductOfPreserves
+#align category_theory.functor.has_binary_biproduct_of_preserves CategoryTheory.Functor.hasBinaryBiproduct_of_preserves
 
 /-- If `F` preserves a binary biproduct, we get a definitionally nice isomorphism
     `F.obj (X ⊞ Y) ≅ F.obj X ⊞ F.obj Y`. -/

Changes in mathlib4

mathlib3
mathlib4
feat: the category of CategoryTheory.Limits.BinaryBicones (#11102)

This follows on from #7209

Diff
@@ -71,17 +71,9 @@ theorem mapBicone_whisker {K : Type w₂} {g : K ≃ J} {f : J → C} (c : Bicon
 end Bicone
 
 /-- The image of a binary bicone under a functor. -/
-@[simps]
-def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y) where
-  pt := F.obj b.pt
-  fst := F.map b.fst
-  snd := F.map b.snd
-  inl := F.map b.inl
-  inr := F.map b.inr
-  inl_fst := by rw [← F.map_comp, b.inl_fst, F.map_id]
-  inl_snd := by rw [← F.map_comp, b.inl_snd, F.map_zero]
-  inr_fst := by rw [← F.map_comp, b.inr_fst, F.map_zero]
-  inr_snd := by rw [← F.map_comp, b.inr_snd, F.map_id]
+@[simps!]
+def mapBinaryBicone {X Y : C} (b : BinaryBicone X Y) : BinaryBicone (F.obj X) (F.obj Y) :=
+  (BinaryBicones.functoriality _ _ F).obj b
 #align category_theory.functor.map_binary_bicone CategoryTheory.Functor.mapBinaryBicone
 
 end Map
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -419,7 +419,7 @@ theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
   ext j
-  dsimp only [Function.comp]
+  dsimp only [Function.comp_def]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_hom, Category.assoc, biproduct.lift_π, ← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
@@ -429,7 +429,7 @@ theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
   ext j
-  dsimp only [Function.comp]
+  dsimp only [Function.comp_def]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_inv, ← Category.assoc, biproduct.ι_desc ,← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
style: fix wrapping of where (#7149)
Diff
@@ -188,8 +188,8 @@ attribute [inherit_doc PreservesBinaryBiproducts] PreservesBinaryBiproducts.pres
 
 /-- A functor that preserves biproducts of a pair preserves binary biproducts. -/
 def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMorphisms F] (X Y : C)
-    [PreservesBiproduct (pairFunction X Y) F] : PreservesBinaryBiproduct X Y F
-    where preserves {b} hb :=
+    [PreservesBiproduct (pairFunction X Y) F] : PreservesBinaryBiproduct X Y F where
+  preserves {b} hb :=
     { isLimit :=
         IsLimit.ofIsoLimit
             ((IsLimit.postcomposeHomEquiv (diagramIsoPair _) _).symm
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.biproducts
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Limits.Shapes.Biproducts
 import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero
 
+#align_import category_theory.limits.preserves.shapes.biproducts from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # Preservation of biproducts
 
chore: bump to nightly-2023-07-01 (#5409)

Open in Gitpod

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -422,7 +422,7 @@ theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
   ext j
-  dsimp [Function.comp]
+  dsimp only [Function.comp]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_hom, Category.assoc, biproduct.lift_π, ← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
@@ -432,7 +432,7 @@ theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
   ext j
-  dsimp [Function.comp]
+  dsimp only [Function.comp]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_inv, ← Category.assoc, biproduct.ι_desc ,← F.map_comp]
 #align category_theory.limits.biproduct.map_biproduct_inv_map_desc CategoryTheory.Limits.biproduct.mapBiproduct_inv_map_desc
feat: more consistent use of ext, and updating porting notes. (#5242)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -421,7 +421,7 @@ theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     -- Porting note: twice we need haveI to tell Lean about hasBiproduct_of_preserves F f
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
-  apply biproduct.hom_ext; intro j'
+  ext j
   dsimp [Function.comp]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_hom, Category.assoc, biproduct.lift_π, ← F.map_comp]
@@ -431,7 +431,7 @@ theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
     -- Porting note: twice we need haveI to tell Lean about hasBiproduct_of_preserves F f
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     (F.mapBiproduct f).inv ≫ F.map (biproduct.desc g) = biproduct.desc fun j => F.map (g j) := by
-  apply biproduct.hom_ext'; intro j
+  ext j
   dsimp [Function.comp]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
   simp only [mapBiproduct_inv, ← Category.assoc, biproduct.ι_desc ,← F.map_comp]
@@ -450,7 +450,7 @@ variable (X Y : C) [HasBinaryBiproduct X Y] [PreservesBinaryBiproduct X Y F] {W
 
 theorem biprod.map_lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
     F.map (biprod.lift f g) ≫ (F.mapBiprod X Y).hom = biprod.lift (F.map f) (F.map g) := by
-  apply biprod.hom_ext <;> simp [mapBiprod, ← F.map_comp]
+  ext <;> simp [mapBiprod, ← F.map_comp]
 #align category_theory.limits.biprod.map_lift_map_biprod CategoryTheory.Limits.biprod.map_lift_mapBiprod
 
 theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
@@ -460,7 +460,7 @@ theorem biprod.lift_mapBiprod (f : W ⟶ X) (g : W ⟶ Y) :
 
 theorem biprod.mapBiprod_inv_map_desc (f : X ⟶ W) (g : Y ⟶ W) :
     (F.mapBiprod X Y).inv ≫ F.map (biprod.desc f g) = biprod.desc (F.map f) (F.map g) := by
-  apply biprod.hom_ext' <;> simp [mapBiprod, ← F.map_comp]
+  ext <;> simp [mapBiprod, ← F.map_comp]
 #align category_theory.limits.biprod.map_biprod_inv_map_desc CategoryTheory.Limits.biprod.mapBiprod_inv_map_desc
 
 theorem biprod.mapBiprod_hom_desc (f : X ⟶ W) (g : Y ⟶ W) :
chore: port missing instance priorities (#3613)

See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/mathport.20drops.20priorities.20in.20.60attribute.20.5Binstance.5D.60. mathport has been dropping the priorities on instances when using the attribute command.

This PR adds back all the priorities, except for local attribute, and instances involving coercions, which I didn't want to mess with.

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

Diff
@@ -124,7 +124,7 @@ class PreservesBiproductsOfShape (F : C ⥤ D) [PreservesZeroMorphisms F] where
 
 attribute [inherit_doc PreservesBiproductsOfShape] PreservesBiproductsOfShape.preserves
 
-attribute [instance] PreservesBiproductsOfShape.preserves
+attribute [instance 100] PreservesBiproductsOfShape.preserves
 
 end Bicone
 
@@ -136,7 +136,7 @@ class PreservesFiniteBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
 
 attribute [inherit_doc PreservesFiniteBiproducts] PreservesFiniteBiproducts.preserves
 
-attribute [instance] PreservesFiniteBiproducts.preserves
+attribute [instance 100] PreservesFiniteBiproducts.preserves
 
 /-- A functor `F` preserves biproducts if it preserves biproducts of any shape `J` of size `w`.
     The usual notion of preservation of biproducts is recovered by choosing `w` to be the universe
@@ -147,7 +147,7 @@ class PreservesBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
 
 attribute [inherit_doc PreservesBiproducts] PreservesBiproducts.preserves
 
-attribute [instance] PreservesBiproducts.preserves
+attribute [instance 100] PreservesBiproducts.preserves
 
 /-- Preserving biproducts at a bigger universe level implies preserving biproducts at a
 smaller universe level. -/
@@ -213,7 +213,7 @@ def preservesBinaryBiproductsOfPreservesBiproducts (F : C ⥤ D) [PreservesZeroM
   preserves {X} Y := preservesBinaryBiproductOfPreservesBiproduct F X Y
 #align category_theory.limits.preserves_binary_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts
 
-attribute [instance] PreservesBinaryBiproducts.preserves
+attribute [instance 100] PreservesBinaryBiproducts.preserves
 
 end Limits
 
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
@@ -161,7 +161,7 @@ def preservesBiproductsShrink (F : C ⥤ D) [PreservesZeroMorphisms F]
 #align category_theory.limits.preserves_biproducts_shrink CategoryTheory.Limits.preservesBiproductsShrink
 
 instance (priority := 100) preservesFiniteBiproductsOfPreservesBiproducts (F : C ⥤ D)
-    [PreservesZeroMorphisms F] [PreservesBiproducts.{w₁} F] : PreservesFiniteBiproducts F where 
+    [PreservesZeroMorphisms F] [PreservesBiproducts.{w₁} F] : PreservesFiniteBiproducts F where
   preserves {J} _ := by letI := preservesBiproductsShrink.{0} F; infer_instance
 #align category_theory.limits.preserves_finite_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesFiniteBiproductsOfPreservesBiproducts
 
@@ -171,7 +171,7 @@ class PreservesBinaryBiproduct (X Y : C) (F : C ⥤ D) [PreservesZeroMorphisms F
   preserves : ∀ {b : BinaryBicone X Y}, b.IsBilimit → (F.mapBinaryBicone b).IsBilimit
 #align category_theory.limits.preserves_binary_biproduct CategoryTheory.Limits.PreservesBinaryBiproduct
 
-attribute [inherit_doc PreservesBinaryBiproduct] PreservesBinaryBiproduct.preserves 
+attribute [inherit_doc PreservesBinaryBiproduct] PreservesBinaryBiproduct.preserves
 
 /-- A functor `F` preserves binary biproducts of `X` and `Y` if `F` maps every bilimit bicone over
     `X` and `Y` to a bilimit bicone over `F.obj X` and `F.obj Y`. -/
@@ -187,7 +187,7 @@ class PreservesBinaryBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F] where
   preserves : ∀ {X Y : C}, PreservesBinaryBiproduct X Y F := by infer_instance
 #align category_theory.limits.preserves_binary_biproducts CategoryTheory.Limits.PreservesBinaryBiproducts
 
-attribute [inherit_doc PreservesBinaryBiproducts] PreservesBinaryBiproducts.preserves 
+attribute [inherit_doc PreservesBinaryBiproducts] PreservesBinaryBiproducts.preserves
 
 /-- A functor that preserves biproducts of a pair preserves binary biproducts. -/
 def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMorphisms F] (X Y : C)
@@ -209,7 +209,7 @@ def preservesBinaryBiproductOfPreservesBiproduct (F : C ⥤ D) [PreservesZeroMor
 
 /-- A functor that preserves biproducts of a pair preserves binary biproducts. -/
 def preservesBinaryBiproductsOfPreservesBiproducts (F : C ⥤ D) [PreservesZeroMorphisms F]
-    [PreservesBiproductsOfShape WalkingPair F] : PreservesBinaryBiproducts F where 
+    [PreservesBiproductsOfShape WalkingPair F] : PreservesBinaryBiproducts F where
   preserves {X} Y := preservesBinaryBiproductOfPreservesBiproduct F X Y
 #align category_theory.limits.preserves_binary_biproducts_of_preserves_biproducts CategoryTheory.Limits.preservesBinaryBiproductsOfPreservesBiproducts
 
@@ -267,7 +267,7 @@ theorem biproductComparison'_comp_biproductComparison :
 
 /-- `biproduct_comparison F f` is a split epimorphism. -/
 @[simps]
-def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) where 
+def splitEpiBiproductComparison : SplitEpi (biproductComparison F f) where
   section_ := biproductComparison' F f
   id := by aesop
 #align category_theory.functor.split_epi_biproduct_comparison CategoryTheory.Functor.splitEpiBiproductComparison
@@ -277,7 +277,7 @@ instance : IsSplitEpi (biproductComparison F f) :=
 
 /-- `biproduct_comparison' F f` is a split monomorphism. -/
 @[simps]
-def splitMonoBiproductComparison' : SplitMono (biproductComparison' F f) where 
+def splitMonoBiproductComparison' : SplitMono (biproductComparison' F f) where
   retraction := biproductComparison F f
   id := by aesop
 #align category_theory.functor.split_mono_biproduct_comparison' CategoryTheory.Functor.splitMonoBiproductComparison'
@@ -303,12 +303,12 @@ def mapBiproduct : F.obj (⨁ f) ≅ ⨁ F.obj ∘ f :=
 #align category_theory.functor.map_biproduct CategoryTheory.Functor.mapBiproduct
 
 theorem mapBiproduct_hom :
-    haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f 
+    haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     (mapBiproduct F f).hom = biproduct.lift fun j => F.map (biproduct.π f j) := rfl
 #align category_theory.functor.map_biproduct_hom CategoryTheory.Functor.mapBiproduct_hom
 
 theorem mapBiproduct_inv :
-    haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f 
+    haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     (mapBiproduct F f).inv = biproduct.desc fun j => F.map (biproduct.ι f j) := rfl
 #align category_theory.functor.map_biproduct_inv CategoryTheory.Functor.mapBiproduct_inv
 
@@ -366,7 +366,7 @@ theorem biprodComparison'_comp_biprodComparison :
 @[simps]
 def splitEpiBiprodComparison : SplitEpi (biprodComparison F X Y) where
   section_ := biprodComparison' F X Y
-  id := by aesop 
+  id := by aesop
 #align category_theory.functor.split_epi_biprod_comparison CategoryTheory.Functor.splitEpiBiprodComparison
 
 instance : IsSplitEpi (biprodComparison F X Y) :=
@@ -421,10 +421,10 @@ theorem biproduct.map_lift_mapBiprod (g : ∀ j, W ⟶ f j) :
     -- Porting note: twice we need haveI to tell Lean about hasBiproduct_of_preserves F f
     haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
     F.map (biproduct.lift g) ≫ (F.mapBiproduct f).hom = biproduct.lift fun j => F.map (g j) := by
-  apply biproduct.hom_ext; intro j' 
+  apply biproduct.hom_ext; intro j'
   dsimp [Function.comp]
   haveI : HasBiproduct fun j => F.obj (f j) := hasBiproduct_of_preserves F f
-  simp only [mapBiproduct_hom, Category.assoc, biproduct.lift_π, ← F.map_comp] 
+  simp only [mapBiproduct_hom, Category.assoc, biproduct.lift_π, ← F.map_comp]
 #align category_theory.limits.biproduct.map_lift_map_biprod CategoryTheory.Limits.biproduct.map_lift_mapBiprod
 
 theorem biproduct.mapBiproduct_inv_map_desc (g : ∀ j, f j ⟶ W) :
@@ -475,4 +475,3 @@ end Limits
 end HasZeroMorphisms
 
 end CategoryTheory
-
feat: port CategoryTheory.Limits.Preserves.Shapes.Biproducts (#2727)

Co-authored-by: Matthew Robert Ballard <100034030+mattrobball@users.noreply.github.com>

Dependencies 2 + 244

245 files ported (99.2%)
102975 lines ported (99.9%)
Show graph

The unported dependencies are