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.

(** Morphism composition commutes with conversion. *)
Theorem Cat_Iso_conv_inv_compose {c c' c'' : C}
(h :
(((inverse_morphism I) _o) (((iso_morphism I) _o) c))
–≻ (((inverse_morphism I) _o) (((iso_morphism I) _o) c'))
)
(h' :
(((inverse_morphism I) _o) (((iso_morphism I) _o) c'))
–≻ (((inverse_morphism I) _o) (((iso_morphism I) _o) c''))
)
:
Cat_Iso_conv_inv (compose C h h')
= compose C (Cat_Iso_conv_inv h) (Cat_Iso_conv_inv h').