End Functor_eq_simplification.
Hint Extern 2 => Functor_Simplify.
Ltac Func_eq_simpl :=
match goal with
[|- ?A = ?B :> Functor _ _] =>
(apply (Functor_eq_simplify A B (eq_refl : A _o = B _o)%object)) +
(cut (A _o = B _o)%object; [
let u := fresh "H" in
intros H;
apply (Functor_eq_simplify A B H)
|
])
end.
Hint Extern 3 => Func_eq_simpl.
Section Functor_eq.
Context {C C' : Category} (F G : (C –≻ C')%functor).

(* Specifications: *)
Lemma Functor_eq_morph (H : F = G) :
∃ (H : ∀ x, F _o x = G _o x),
∀ x y (h : (x –≻ y)%morphism),
match H x in _ = V return (V –≻ _)%morphism with
eq_refl =>
match H y in _ = V return (_ –≻ V)%morphism with
eq_refl => F _a h
end
end = G _a h.