Section PreSheaf_Monic_components_Monic_is_Monic.
Context
(d : Type)
(g h : d → (F _o)%object c)
(H : (fun x => Trans (mono_morphism N) c (g x))
= (fun x => Trans (mono_morphism N) c (h x)))
.
(*    Local Hint Extern 1 => progress cbn.*)
Local Hint Extern 1 =>
match goal with
[|- context [(F _a)%morphism (?A ∘ ?B)%morphism] ] =>
cbn_rewrite (F_compose F A B)
end.
Program Definition PMCM_PreSheaf_morph_of_function
(f : d → (F _o)%object c)
: (PMCM_PreSheaf_representing_d c d –≻ F)%nattrans
:=
{|
Trans := fun o x => (F _a (fst x))%morphism (f (snd x))
|}
.

Theorem PMCM_N_co_equalizes :
((mono_morphism N) ∘ (PMCM_PreSheaf_morph_of_function g))%nattrans
= ((mono_morphism N) ∘ (PMCM_PreSheaf_morph_of_function h))%nattrans.