Definition terminal_from_empty_product (C : category) : Product ∅ C fromempty -> Terminal C. Proof. intros X. use (make_Terminal (ProductObject _ C X)). use make_isTerminal. intros a. assert (H : ∏ i : ∅, C⟦a, fromempty i⟧) by (intros i; apply (fromempty i)). apply (make_iscontr (ProductArrow _ _ X H)). abstract (intros t; apply ProductArrowUnique; intros i; apply (fromempty i)). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Limits.Products. Require Import UniMath.CategoryTheory.Monics.