proposition: Lemma BinProducts_from_Lims : Lims_of_shape two_graph C -> BinProducts C.
proof: Proof. intros H a b. set (LC := H (binproduct_diagram a b)). use make_BinProduct. + apply (lim LC). + apply (limOut LC true). + apply (limOut LC false). + apply (make_isBinProduct C); intros c f g. use unique_exists. - apply limArrow, (Binproduct f g). - abstract (split; [ apply (limArrowCommutes LC c (Binproduct f g) true) | apply (limArrowCommutes LC c (Binproduct f g) false) ]). - abstract (intros h; apply isapropdirprod; apply C). - abstract (now intros h [H1 H2]; apply limArrowUnique; intro x; induction x). Defined.
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.Monics UniMath.CategoryTheory.PrecategoryBinProduct UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Graphs.Colimits UniMath.CategoryTheory.Limits.Graphs.Limits UniMath.CategoryTheory.Limits.Products UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.FunctorCategory UniMath.Combinatorics.StandardFiniteSets