Generalizable All Variables.
-Require Import Preamble.
-Require Import General.
+Require Import Notations.
Require Import Categories_ch1_3.
Require Import Functors_ch1_4.
Defined.
(* the composition of two isomorphisms is an isomorphism *)
-Definition id_comp `{C:Category}{a b c:C}(i1:Isomorphic a b)(i2:Isomorphic b c) : Isomorphic a c.
+Definition iso_comp `{C:Category}{a b c:C}(i1:Isomorphic a b)(i2:Isomorphic b c) : Isomorphic a c.
intros; apply (@Build_Isomorphic _ _ C a c (#i1 >>> #i2) (#i2⁻¹ >>> #i1⁻¹));
setoid_rewrite juggle3;
[ setoid_rewrite (iso_comp1 i2) | setoid_rewrite (iso_comp2 i1) ];
[ setoid_rewrite (iso_comp1 i1) | setoid_rewrite (iso_comp2 i2) ];
reflexivity.
Defined.
+Notation "a >>≅>> b" := (iso_comp a b).
Definition functors_preserve_isos `{C1:Category}`{C2:Category}{Fo}(F:Functor C1 C2 Fo){a b:C1}(i:Isomorphic a b)
: Isomorphic (F a) (F b).