proposition: Lemma bincoproduct_of_z_iso_inv : is_inverse_in_precat fg fg_inv.
proof: Proof. split; use BinCoproductArrowsEq; unfold fg, fg_inv. - rewrite !assoc. rewrite BinCoproductOfArrowsIn1. rewrite !assoc'. rewrite BinCoproductOfArrowsIn1. rewrite !assoc. rewrite z_iso_inv_after_z_iso. rewrite id_left, id_right. apply idpath. - rewrite !assoc. rewrite BinCoproductOfArrowsIn2. rewrite !assoc'. rewrite BinCoproductOfArrowsIn2. rewrite !assoc. rewrite z_iso_inv_after_z_iso. rewrite id_left, id_right. apply idpath. - rewrite !assoc. rewrite BinCoproductOfArrowsIn1. rewrite !assoc'. rewrite BinCoproductOfArrowsIn1. rewrite !assoc. rewrite z_iso_after_z_iso_inv. rewrite id_left, id_right. apply idpath. - rewrite !assoc. rewrite BinCoproductOfArrowsIn2. rewrite !assoc'. rewrite BinCoproductOfArrowsIn2. rewrite !assoc. rewrite z_iso_after_z_iso_inv. rewrite id_left, id_right. apply idpath. 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