Section Cat_IConv.
Context {C D : Category} (I : C ≃≃ D ::> Cat).
(** Object conversion through an isomorphism and its inverse isomorphism gives back the same object. *)
Definition Cat_Iso_Obj_conv (c : C) :
c = (((inverse_morphism I) _o) (((iso_morphism I) _o) c))%object.
(** Homomorphism types remain the smae after object conversion through an isomorphism and its inverse isomorphism. *)
Definition Cat_Iso_Hom_conv (c c' : C) :
((((inverse_morphism I) _o) (((iso_morphism I) _o) c))
–≻
(((inverse_morphism I) _o) (((iso_morphism I) _o) c')))%morphism
= (c –≻ c').
(** Type conversion to the original hom type after conversion with the inverse of an isomorphism and that isomorphism. *)
Definition Cat_Iso_conv {c c' : C} (h : c –≻ c') :
(((inverse_morphism I) _o) (((iso_morphism I) _o) c))
–≻ (((inverse_morphism I) _o) (((iso_morphism I) _o) c'))
:=
match eq_sym (Cat_Iso_Hom_conv c c') in _ = Y return Y with
eq_refl => h
end.

(** Conversion once through the inverse of an isomrphism and that isomorphism and once through that isomorphism and its inverse gives back the same arrow as we strated with. *)
Theorem Cat_Iso_conv_Cat_Iso_conv_inv {c c' : C}
(h :
(((inverse_morphism I) _o) (((iso_morphism I) _o) c))
–≻ (((inverse_morphism I) _o) (((iso_morphism I) _o) c')))
:
Cat_Iso_conv (Cat_Iso_conv_inv h) = h.