proposition: Lemma coproduct_of_functors_is_inverse {I : UU} {C D : category} (CP : Coproducts I D) {F G : I → C ⟶ D} (α : ∏ i : I, nat_z_iso (F i) (G i)) (c : C) : is_inverse_in_precat (coproduct_of_functors_nat_trans CP (λ i : I, α i) c) (CoproductOfArrows I D (CP (λ i : I, G i c)) (CP (λ i : I, F i c)) (λ i : I, pr1 (pr2 (α i) c))).
proof: Proof. split. + etrans. 1: apply precompWithCoproductArrow. apply pathsinv0, CoproductArrowUnique. intro i. etrans. 2: apply assoc'. etrans. 2: apply maponpaths_2, pathsinv0, (pr2 (pr2 (α i) c)). exact (id_right _ @ ! id_left _). + etrans. 1: apply precompWithCoproductArrow. apply pathsinv0, CoproductArrowUnique. intro i. etrans. 2: apply assoc'. etrans. 2: apply maponpaths_2, pathsinv0, (pr2 (pr2 (α i) c)). exact (id_right _ @ ! id_left _). Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Limits.Coproducts UniMath.CategoryTheory.Limits.Graphs.Limits UniMath.CategoryTheory.Limits.Graphs.Colimits UniMath.CategoryTheory.Chains.All