Lemma iso_to_isProduct : isProduct _ _ _ Y (λ j, i · ProductPr _ _ P j). Proof. intros W f. use unique_exists. - exact ((ProductArrow _ _ P f) · (z_iso_inv_from_z_iso i)). - abstract exact (iso_to_isProduct_comm W f). - abstract (intro; apply impred_isaprop; intro; apply C). - abstract (intros y0 T; exact (iso_to_isProduct_unique W f y0 T)). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.ProductCategory. Require Import UniMath.CategoryTheory.Limits.Graphs.Colimits. Require Import UniMath.CategoryTheory.Limits.Graphs.Limits. Require Import UniMath.Combinatorics.StandardFiniteSets. Section ProductFromIso. End ProductFromIso.