proposition: Lemma BinCoproduct_endo_is_identity {a b : C} (CC : BinCoproduct a b) (k : BinCoproductObject CC --> BinCoproductObject CC) (H1 : BinCoproductIn1 CC · k = BinCoproductIn1 CC) (H2 : BinCoproductIn2 CC · k = BinCoproductIn2 CC) : identity _ = k.
proof: Proof. set (H' := pr2 CC _ (BinCoproductIn1 CC) (BinCoproductIn2 CC) ); simpl in *. set (X := (∑ fg : pr1 (pr1 CC) --> BinCoproductObject CC, pr1 (pr2 (pr1 CC))· fg = BinCoproductIn1 CC × pr2 (pr2 (pr1 CC))· fg = BinCoproductIn2 CC)). set (t1 := tpair _ k (make_dirprod H1 H2) : X). set (t2 := tpair _ (identity _ ) (make_dirprod (id_right _ ) (id_right _ ) ) : X). assert (X' : t1 = t2). { apply proofirrelevancecontr. apply H'. } apply pathsinv0. apply (base_paths _ _ X'). Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Univalence UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Graphs.Colimits UniMath.CategoryTheory.Limits.Coproducts UniMath.CategoryTheory.FunctorCategory UniMath.CategoryTheory.whiskering UniMath.CategoryTheory.ProductCategory