Section initial_def.
Variable C : Category.
Definition IsInitial (a : C) (h : forall b : C, a --> b) :=
forall (b : C) (f : a --> b), f =_S h b.
Structure > Initial : Type :=
{Initial_ob : C;
MorI : forall b : C, Initial_ob --> b;
Prf_isInitial :> IsInitial MorI}.
Definition At_most_1mor (a b : C) := forall f g : a --> b, f =_S g.
End terminal_def.

Lemma Initial_dual :
forall (C : Category) (a : C) (h : forall b : C, a --> b),
IsInitial h -> IsTerminal (C:=Dual C) h.