From 3e0565657f896d3064e68b03d30c1a748a8bed25 Mon Sep 17 00:00:00 2001 From: Jacques Comeaux Date: Sat, 10 Jan 2026 22:04:30 -0600 Subject: Extend monoidalize functor to commutative monoids --- .../Monoidal/Construction/CMonoidValued.agda | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 NaturalTransformation/Monoidal/Construction/CMonoidValued.agda (limited to 'NaturalTransformation/Monoidal') 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 β,āŠ—,ε,σ -- cgit v1.2.3