X-Git-Url: http://git.megacz.com/?p=coq-categories.git;a=blobdiff_plain;f=src%2FFreydCategories.v;h=8b921dfb79f7a14d2083c9226e3f3450697d359a;hp=3e26e376592aa1157989e362e2c6884b237cd31d;hb=658181bed516646957267b055341d9d4b197ed0d;hpb=27ffdd2265eb1c15acc62970f49d25a07bcadb05 diff --git a/src/FreydCategories.v b/src/FreydCategories.v index 3e26e37..8b921df 100644 --- a/src/FreydCategories.v +++ b/src/FreydCategories.v @@ -3,8 +3,7 @@ (*******************************************************************************) Generalizable All Variables. -Require Import Preamble. -Require Import General. +Require Import Notations. Require Import Categories_ch1_3. Require Import Functors_ch1_4. Require Import Isomorphisms_ch1_5. @@ -22,21 +21,21 @@ Require Import MonoidalCategories_ch7_8. (* A Freyd Category is... *) Class FreydCategory - (* a cartesian category C *) - `(C:CartesianCat(Ob:=Ob)(C:=C1)) + (* a cartesian category C *) + `(C:CartesianCat(Ob:=Ob)(C:=C1)(bin_obj':=bobj)) - (* a premonoidal category K with the same objects (its unit object is 1 because the functor is both IIO and strict) *) - `(K:PreMonoidalCat(Ob:=Ob)(bin_obj':=bobj)(I:=@one _ _ _ C)) + (* a premonoidal category K with the same objects (its unit object is 1 because the functor is both IIO and strict) *) + `(K:PreMonoidalCat(Ob:=Ob)(bin_obj':=bobj)(I:=pmon_I C)) - (* an identity-on-objects functor J:C->Z(K) *) -:= { fc_J : Functor C (Center_is_Monoidal K) (fun x => exist (fun _ => True) x I) + (* an identity-on-objects functor J:C->Z(K) *) +:= { fc_J : Functor C (Center_is_Monoidal K) (fun x => x) - (* which is not only monoidal *) + (* which is a monoidal functor *) ; fc_mf_J : MonoidalFunctor C (Center_is_Monoidal K) fc_J - (* but in fact strict (meaning the functor's coherence maps are identities) *) - (*; fc_strict : forall a b, #(mf_first a b) ~~ id _ - FIXME - I will need to separate Subcategory from FullSubCategory in order to fix this *) + (* and strict (meaning the functor's coherence maps are identities) *) + ; fc_strict_first : forall a b, #(mf_first(PreMonoidalFunctor:=fc_mf_J) a b) ~~ id _ (* mf_consistent gives us mf_second *) + ; fc_strict_id : #(mf_i(PreMonoidalFunctor:=fc_mf_J)) ~~ id _ ; fc_C := C ; fc_K := K