Section PreSheaf_Epic_components_is_Epic.
Context
(d : Type)
(g h : (G _o)%object c → d)
(H : (fun x => g (Trans (mono_morphism N) c x)) =
(fun x => h (Trans (mono_morphism N) c x)))
.
Local Hint Extern 1 => progress cbn.
Local Hint Extern 1 => rewrite assoc.
Program Definition PECE_PreSheaf_representing_d : PreSheaf C
:=
{|
FO := fun c' => (((Hom C c c') → d))%object%morphism%type;
FA := fun o o' u x y => (x (compose C y u))
|}
.
Local Hint Extern 1 =>
match goal with
[|- context [(G _a)%morphism (?A ∘ ?B)%morphism] ] =>
cbn_rewrite (F_compose G A B)
end.
Program Definition PECE_PreSheaf_morph_of_function
(f : (G _o)%object c → d)
: (G –≻ PECE_PreSheaf_representing_d)%nattrans
:=
{|
Trans := fun o x y => f ((G _a y)%morphism x)
|}
.

Theorem PECE_N_co_equalizes :
((PECE_PreSheaf_morph_of_function g) ∘ (mono_morphism N))%nattrans =
((PECE_PreSheaf_morph_of_function h) ∘ (mono_morphism N))%nattrans.