diff options
Diffstat (limited to 'NaturalTransformation/Monoidal')
| -rw-r--r-- | NaturalTransformation/Monoidal/Construction/CMonoidValued.agda | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/NaturalTransformation/Monoidal/Construction/CMonoidValued.agda b/NaturalTransformation/Monoidal/Construction/CMonoidValued.agda new file mode 100644 index 0000000..3005ee7 --- /dev/null +++ b/NaturalTransformation/Monoidal/Construction/CMonoidValued.agda @@ -0,0 +1,61 @@ +{-# OPTIONS --without-K --safe #-} + +open import Categories.Category using (Category) +open import Categories.Category.Cocartesian using (Cocartesian) +open import Category.Construction.CMonoids using (CMonoids) +open import Categories.Category.Monoidal.Bundle using (SymmetricMonoidalCategory) +open import Categories.Functor using (Functor) renaming (_āF_ to _ā_) +open import Categories.NaturalTransformation using (NaturalTransformation; _āĖ”_) +open import Level using (Level) + +-- A natural transformation between functors F, G +-- from a cocartesian category š to CMonoids[S] +-- can be turned into a symmetric monoidal natural transformation +-- between symmetric monoidal functors Fā² Gā² from š to S + +module NaturalTransformation.Monoidal.Construction.CMonoidValued + {o oā² ā āā² e eā² : Level} + {š : Category o ā e} + (š-+ : Cocartesian š) + {S : SymmetricMonoidalCategory oā² āā² eā²} + (let module S = SymmetricMonoidalCategory S) + {M N : Functor š (CMonoids S.symmetric)} + (α : NaturalTransformation M N) + where + +import Functor.Monoidal.Construction.CMonoidValued š-+ {S = S} as FamilyOfCMonoids +import NaturalTransformation.Monoidal.Construction.MonoidValued as MonoidValued + +open import Categories.Category.Construction.Monoids using (Monoids) +open import Functor.Forgetful.Instance.CMonoid S.symmetric using (Forget) + +module _ where + open import Categories.NaturalTransformation.Monoidal using (module Lax) + open Lax using (MonoidalNaturalTransformation) public + +module _ where + open import Categories.NaturalTransformation.Monoidal.Symmetric using (module Lax) + open Lax using (SymmetricMonoidalNaturalTransformation) public + +private + + module M = Functor M + module N = Functor N + open FamilyOfCMonoids M using (F,ā,ε,Ļ) + open FamilyOfCMonoids N using () renaming (F,ā,ε,Ļ to G,ā,ε,Ļ) + + F : Functor š (Monoids S.monoidal) + F = Forget ā M + + G : Functor š (Monoids S.monoidal) + G = Forget ā N + + β : NaturalTransformation F G + β = Forget āĖ” α + +open MonoidValued š-+ β using (β,ā,ε) + +β,ā,ε,Ļ : SymmetricMonoidalNaturalTransformation F,ā,ε,Ļ G,ā,ε,Ļ +β,ā,ε,Ļ = record { MonoidalNaturalTransformation β,ā,ε } + +module β,ā,ε,Ļ = SymmetricMonoidalNaturalTransformation β,ā,ε,Ļ |
