Section LoKan_id_Cone_Morph.
Context (Cn : LoKan_Cone p F).
Local Hint Extern 1 => apply NatTrans_eq_simplify; cbn.
(** The identity cone morph. *)
Program Definition LoKan_id_Cone_Morph : LoKan_Cone_Morph Cn Cn :=
{|
cone_morph := NatTrans_id _
|}.
End LoKan_id_Cone_Morph.
Section LoKan_Cone_Morph_compose.
Context {Cn Cn' Cn'' : LoKan_Cone p F}
(h : LoKan_Cone_Morph Cn Cn')
(h' : LoKan_Cone_Morph Cn' Cn'').
(** Composition of cone morphs. *)
Program Definition LoKan_Cone_Morph_compose : LoKan_Cone_Morph Cn Cn'' :=
{|
cone_morph := NatTrans_compose h h'
|}.
Next Obligation.
End LoKan_Cone_Morph_compose.
Section LoKan_Cone_Morph_compose_assoc.
Context {Cn Cn' Cn'' Cn''' : LoKan_Cone p F}
(h : LoKan_Cone_Morph Cn Cn')
(h' : LoKan_Cone_Morph Cn' Cn'')
(h'' : LoKan_Cone_Morph Cn'' Cn''').

(* Specifications: *)
(** Composition of cone morphs is associative. *)
Theorem LoKan_Cone_Morph_compose_assoc :
LoKan_Cone_Morph_compose h (LoKan_Cone_Morph_compose h' h'') =
LoKan_Cone_Morph_compose (LoKan_Cone_Morph_compose h h') h''.