X-Git-Url: http://git.megacz.com/?p=coq-categories.git;a=blobdiff_plain;f=src%2FFreydCategories.v;h=3e26e376592aa1157989e362e2c6884b237cd31d;hp=c50e732761fd23bdc521da680cdf33b8f6744c84;hb=27ffdd2265eb1c15acc62970f49d25a07bcadb05;hpb=b0262af94b62376527556d79b10c4f1de29a9565 diff --git a/src/FreydCategories.v b/src/FreydCategories.v index c50e732..3e26e37 100644 --- a/src/FreydCategories.v +++ b/src/FreydCategories.v @@ -14,25 +14,29 @@ Require Import Subcategories_ch7_1. Require Import NaturalTransformations_ch7_4. Require Import NaturalIsomorphisms_ch7_5. Require Import Coherence_ch7_8. +Require Import BinoidalCategories. +Require Import PreMonoidalCategories. +Require Import PreMonoidalCenter. Require Import MonoidalCategories_ch7_8. (* A Freyd Category is... *) Class FreydCategory (* a cartesian category C *) - `(C:CartesianCat(Ob:=Ob)(C:=C1)(Fobj:=fun x => bobj (fst_obj _ _ x) (snd_obj _ _ x))) + `(C:CartesianCat(Ob:=Ob)(C:=C1)) (* 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)) (* an identity-on-objects functor J:C->Z(K) *) -:= { fc_J : Functor C (CenterMonoidal K) (fun x => exist _ x I) +:= { fc_J : Functor C (Center_is_Monoidal K) (fun x => exist (fun _ => True) x I) (* which is not only monoidal *) - ; fc_mf_J : MonoidalFunctor C (CenterMonoidal K) fc_J + ; 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, iso_forward (mf_coherence fc_mf_J a) ~~ id _ + (* 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 *) ; fc_C := C ; fc_K := K