Theorem functorcategoryTerminalObject (B C:category) : TerminalObject C -> TerminalObject [B,C]. Proof. intro t. apply (@z_iso_Representation_weq _ (bifunctor_assoc (constantFunctor B (UnitFunctor C^op)))). { unshelve refine (makeNatiso _ _). { intros F. apply hset_equiv_z_iso. unfold bifunctor_assoc; simpl. unshelve refine (weq_iso _ _ _ _). - intros _. exact tt. - intros x. unshelve refine (_,,_). + unfold θ_1; simpl. intro b. exact tt. + eqn_logic. - simpl. intros w. apply subtypePath. { intros f. apply impred; intro b; apply impred; intro b'; apply impred; intro g. apply isasetunit. } apply funextfun; intro b. apply isapropunit. - eqn_logic. } { eqn_logic. } } { apply bifunctor_assoc_repn; intro b. exact t. } Defined.
Require Import UniMath.Foundations.Preamble. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import Require Import Require Import UniMath.MoreFoundations.Tactics.