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 an isomrphism and its inverse and once through its inverse and it gives back the same arrow as we strated with. *)
Theorem Cat_Iso_conv_inv_Cat_Iso_conv {c c' : C} (h : c –≻ c')
: Cat_Iso_conv_inv (Cat_Iso_conv h) = h.