Lemma isColim_weq {C : category} {g : graph} (D : diagram g C) (c : C) (cc : cocone D c) : isColimCocone D c cc <-> ∏ d, isweq (Cocone_by_postcompose D c cc d). Proof. split. - intros H d. use isweq_iso. + intros k. exact (colimArrow (make_ColimCocone D c cc H) _ k). + abstract (intro k; simpl; now apply pathsinv0, (colimArrowEta (make_ColimCocone D c cc H))). + abstract (simpl; intro k; apply subtypePath; [ intro; now repeat (apply impred; intro); apply C | destruct k as [k Hk]; simpl; apply funextsec; intro u; now apply (colimArrowCommutes (make_ColimCocone D c cc H))]). - intros H d cd. use tpair. + exists (invmap (make_weq _ (H d)) cd). abstract (intro u; now apply isColim_weq_subproof2). + abstract (intro t; apply subtypePath; [ intro; now apply impred; intro; apply C | destruct t as [t Ht]; simpl; apply (invmaponpathsweq (make_weq _ (H d))); simpl; apply subtypePath; [ intro; now repeat (apply impred; intro); apply C | simpl; apply pathsinv0, funextsec; intro u; rewrite Ht; now apply isColim_weq_subproof2]]). Defined.
Require Import UniMath.Foundations.PartD. Require Import UniMath.Foundations.Propositions. Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.Tactics. Require Import UniMath.MoreFoundations.Propositions. 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.Adjunctions.Core.