X-Git-Url: http://git.megacz.com/?p=coq-categories.git;a=blobdiff_plain;f=src%2FNaturalIsomorphisms_ch7_5.v;h=f82dba8b3ec6f7ac5308ff3e6e9ad15fdd96e949;hp=90ce3260e43d16a4c6b28d9a038b3ca815cf3c75;hb=e928451c4c45cdbdd975bbfb229e8cc2616b8194;hpb=107e8eb4dc6e893c3dd93535c5343eba204659a8 diff --git a/src/NaturalIsomorphisms_ch7_5.v b/src/NaturalIsomorphisms_ch7_5.v index 90ce326..f82dba8 100644 --- a/src/NaturalIsomorphisms_ch7_5.v +++ b/src/NaturalIsomorphisms_ch7_5.v @@ -3,7 +3,6 @@ Require Import Preamble. Require Import Categories_ch1_3. Require Import Functors_ch1_4. Require Import Isomorphisms_ch1_5. -Require Import ProductCategories_ch1_6_1. (*******************************************************************************) (* Chapter 7.5: Natural Isomorphisms *) @@ -70,7 +69,7 @@ Definition ni_comp `{C:Category}`{D:Category} intros. destruct N1 as [ ni_iso1 ni_commutes1 ]. destruct N2 as [ ni_iso2 ni_commutes2 ]. - exists (fun A => id_comp (ni_iso1 A) (ni_iso2 A)). + exists (fun A => iso_comp (ni_iso1 A) (ni_iso2 A)). abstract (intros; simpl; setoid_rewrite <- associativity; setoid_rewrite <- ni_commutes1; @@ -80,18 +79,19 @@ Definition ni_comp `{C:Category}`{D:Category} Defined. Definition ni_respects - `{A:Category}`{B:Category}`{C:Category} - {F0obj}{F0:Functor A B F0obj} - {F1obj}{F1:Functor A B F1obj} - {G0obj}{G0:Functor B C G0obj} - {G1obj}{G1:Functor B C G1obj} + `{A:Category}`{B:Category} + {F0obj}(F0:Functor A B F0obj) + {F1obj}(F1:Functor A B F1obj) + `{C:Category} + {G0obj}(G0:Functor B C G0obj) + {G1obj}(G1:Functor B C G1obj) : (F0 <~~~> F1) -> (G0 <~~~> G1) -> ((F0 >>>> G0) <~~~> (F1 >>>> G1)). intro phi. intro psi. destruct psi as [ psi_niso psi_comm ]. destruct phi as [ phi_niso phi_comm ]. refine {| ni_iso := - (fun a => id_comp ((@functors_preserve_isos _ _ _ _ _ _ _ G0) _ _ (phi_niso a)) (psi_niso (F1obj a))) |}. + (fun a => iso_comp ((@functors_preserve_isos _ _ _ _ _ _ _ G0) _ _ (phi_niso a)) (psi_niso (F1obj a))) |}. abstract (intros; simpl; setoid_rewrite <- associativity; setoid_rewrite fmor_preserves_comp; @@ -160,7 +160,7 @@ Definition if_comp `{C:Category}`{D:Category} intros. destruct N1 as [ ni_iso1 ni_commutes1 ]. destruct N2 as [ ni_iso2 ni_commutes2 ]. - exists (fun A => id_comp (ni_iso1 A) (ni_iso2 A)). + exists (fun A => iso_comp (ni_iso1 A) (ni_iso2 A)). abstract (intros; simpl; setoid_rewrite <- associativity; setoid_rewrite <- ni_commutes1; @@ -202,17 +202,18 @@ Definition if_right_identity `{C1:Category}`{C2:Category} {Fobj1}(F1:Functor C1 Defined. Definition if_respects - `{A:Category}`{B:Category}`{C:Category} - {F0obj}{F0:Functor A B F0obj} - {F1obj}{F1:Functor A B F1obj} - {G0obj}{G0:Functor B C G0obj} - {G1obj}{G1:Functor B C G1obj} + `{A:Category}`{B:Category} + {F0obj}(F0:Functor A B F0obj) + {F1obj}(F1:Functor A B F1obj) + `{C:Category} + {G0obj}(G0:Functor B C G0obj) + {G1obj}(G1:Functor B C G1obj) : (F0 ≃ F1) -> (G0 ≃ G1) -> ((F0 >>>> G0) ≃ (F1 >>>> G1)). intro phi. intro psi. destruct psi as [ psi_niso psi_comm ]. destruct phi as [ phi_niso phi_comm ]. - exists (fun a => id_comp ((@functors_preserve_isos _ _ _ _ _ _ _ G0) _ _ (phi_niso a)) (psi_niso (F1obj a))). + exists (fun a => iso_comp ((@functors_preserve_isos _ _ _ _ _ _ _ G0) _ _ (phi_niso a)) (psi_niso (F1obj a))). abstract (intros; simpl; setoid_rewrite <- associativity; setoid_rewrite fmor_preserves_comp; @@ -224,14 +225,15 @@ Definition if_respects Defined. Section ni_prod_comp. +Require Import ProductCategories_ch1_6_1. Context `{C1:Category}`{C2:Category} `{D1:Category}`{D2:Category} - {F1Obj}{F1:@Functor _ _ C1 _ _ D1 F1Obj} - {F2Obj}{F2:@Functor _ _ C2 _ _ D2 F2Obj} + {F1Obj}(F1:@Functor _ _ C1 _ _ D1 F1Obj) + {F2Obj}(F2:@Functor _ _ C2 _ _ D2 F2Obj) `{E1:Category}`{E2:Category} - {G1Obj}{G1:@Functor _ _ D1 _ _ E1 G1Obj} - {G2Obj}{G2:@Functor _ _ D2 _ _ E2 G2Obj}. + {G1Obj}(G1:@Functor _ _ D1 _ _ E1 G1Obj) + {G2Obj}(G2:@Functor _ _ D2 _ _ E2 G2Obj). Definition ni_prod_comp_iso A : (((F1 >>>> G1) **** (F2 >>>> G2)) A) ≅ (((F1 **** F2) >>>> (G1 **** G2)) A). unfold functor_fobj. @@ -252,12 +254,3 @@ Section ni_prod_comp. Defined. End ni_prod_comp. -Structure Retraction `{C:Category} `{D:Category} := -{ retraction_section_fobj : C -> D -; retraction_section : Functor C D retraction_section_fobj -; retraction_retraction_fobj : D -> C -; retraction_retraction : Functor D C retraction_retraction_fobj -; retraction_composes : retraction_section >>>> retraction_retraction ≃ functor_id _ -}. -Implicit Arguments Retraction [ [Ob] [Hom] [Ob0] [Hom0] ]. -Coercion retraction_section : Retraction >-> Functor.