X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=src%2FGeneralizedArrow.v;h=303baef5c31d1bc42a1c10a53c4905d74971fd44;hp=bf7743b6f6a1b2b800c3a001740adcc67a5fe7af;hb=443ffa2812bff032a13e33010e8fd1380f7215f1;hpb=992203bb4a221ea2f415c0d14bb34d35af2ee637 diff --git a/src/GeneralizedArrow.v b/src/GeneralizedArrow.v index bf7743b..303baef 100644 --- a/src/GeneralizedArrow.v +++ b/src/GeneralizedArrow.v @@ -20,14 +20,28 @@ Require Import NaturalIsomorphisms_ch7_5. Require Import MonoidalCategories_ch7_8. Require Import Coherence_ch7_8. Require Import Enrichment_ch2_8. +Require Import Enrichments. Require Import RepresentableStructure_ch7_2. +Require Import PreMonoidalCenter. +Require Import PreMonoidalCategories. +Require Import BinoidalCategories. Class GeneralizedArrow (K:Enrichment) {ce}(C:MonoidalEnrichment ce) := -{ ga_functor_obj : enr_v_mon K -> C -; ga_functor : Functor (enr_v_mon K) C ga_functor_obj -; ga_functor_monoidal : MonoidalFunctor (enr_v_mon K) C ga_functor +{ ga_functor_obj : enr_v K -> ce +; ga_functor : Functor (enr_v_mon K) (enr_c_pm ce) ga_functor_obj +; ga_functor_monoidal : PreMonoidalFunctor (enr_v_mon K) (enr_c_pm ce) ga_functor + +(* We require that the host language (but NOT the guest language) be pure, i.e. all morphisms central, to simplify + * things. If this doesn't suit you, just consider the "host language" here to be the pure sublanguage of the + * host language, and toss on the inclusion functor to the full language *) +; ga_host_lang_pure : CommutativeCat (enr_c_pm ce) + +(* +; ga_functor : Functor (enr_v_mon K) (Center_is_Monoidal (enr_c_pm ce)) ga_functor_obj +; ga_functor_monoidal : MonoidalFunctor (enr_v_mon K) (Center_is_Monoidal (enr_c_pm ce)) ga_functor +*) }. -Coercion ga_functor_monoidal : GeneralizedArrow >-> MonoidalFunctor. +Coercion ga_functor_monoidal : GeneralizedArrow >-> PreMonoidalFunctor. Implicit Arguments GeneralizedArrow [ [ce] ]. Implicit Arguments ga_functor_obj [ K ce C ].