aboutsummaryrefslogtreecommitdiff
path: root/NaturalTransformation/Monoidal/Construction
diff options
context:
space:
mode:
Diffstat (limited to 'NaturalTransformation/Monoidal/Construction')
-rw-r--r--NaturalTransformation/Monoidal/Construction/CMonoidValued.agda61
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 β,āŠ—,ε,σ