X-Git-Url: http://git.megacz.com/?p=coq-categories.git;a=blobdiff_plain;f=src%2FSubcategories_ch7_1.v;h=e9c89813b14c519c610b1d05e5150beb76459828;hp=a06e07e4fbe06591b4a9fd1bad37537c51920ae4;hb=1104780d775bf36ff9f44ab287c22604ab47f0b5;hpb=c722b7a165e09570b767e3314d0b0329fc19962e diff --git a/src/Subcategories_ch7_1.v b/src/Subcategories_ch7_1.v index a06e07e..e9c8981 100644 --- a/src/Subcategories_ch7_1.v +++ b/src/Subcategories_ch7_1.v @@ -120,8 +120,37 @@ Section FullImage. auto. Defined. + Lemma RestrictToImage_splits_niso : F ≃ (RestrictToImage >>>> FullImage_InclusionFunctor). + unfold IsomorphicFunctors. + exists (fun A => iso_id (fobj A)). + intros. + simpl. + setoid_rewrite left_identity. + setoid_rewrite right_identity. + reflexivity. + Qed. + End FullImage. +(* any functor may be restricted to a subcategory of its domain *) +Section RestrictDomain. + + Context `{C:Category}. + Context `{D:Category}. + Context `(F:!Functor C D fobj). + Context {Pmor}(S:WideSubcategory C Pmor). + + Instance RestrictDomain : Functor S D fobj := + { fmor := fun a b f => F \ (projT1 f) }. + intros; destruct f; destruct f'; simpl in *. + apply fmor_respects; auto. + intros. simpl. apply fmor_preserves_id. + intros; simpl; destruct f; destruct g; simpl in *. + apply fmor_preserves_comp. + Defined. + +End RestrictDomain. + (* Instance func_opSubcat `(c1:Category)`(c2:Category)`(SP:@SubCategory _ _ c2 Pobj Pmor) {fobj}(F:Functor c1⁽ºᑭ⁾ SP fobj) : Functor c1 SP⁽ºᑭ⁾ fobj :=