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 --- .../Construction/SymmetricMonoidalFunctors.agda | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Category/Construction/SymmetricMonoidalFunctors.agda (limited to 'Category') diff --git a/Category/Construction/SymmetricMonoidalFunctors.agda b/Category/Construction/SymmetricMonoidalFunctors.agda new file mode 100644 index 0000000..b5bf135 --- /dev/null +++ b/Category/Construction/SymmetricMonoidalFunctors.agda @@ -0,0 +1,59 @@ +{-# OPTIONS --without-K --safe #-} + +open import Categories.Category.Monoidal.Bundle using (SymmetricMonoidalCategory) + +module Category.Construction.SymmetricMonoidalFunctors + {o ℓ e o′ ℓ′ e′} + (C : SymmetricMonoidalCategory o ℓ e) + (D : SymmetricMonoidalCategory o′ ℓ′ e′) + where + +-- The functor category for a given pair of symmetric monoidal categories + +open import Level using (_⊔_) +open import Relation.Binary.Construct.On using (isEquivalence) +open import Categories.Category using (Category) +open import Categories.Category.Helper using (categoryHelper) +open import Categories.Functor.Monoidal.Symmetric using () renaming (module Lax to Lax₁; module Strong to Strong₁) +open import Categories.NaturalTransformation.Monoidal.Symmetric using () renaming (module Lax to Lax₂; module Strong to Strong₂) +open import Categories.NaturalTransformation.Equivalence using (_≃_; ≃-isEquivalence) + +open SymmetricMonoidalCategory D + +module Lax where + + open Lax₂.SymmetricMonoidalNaturalTransformation using (U) + + SymmetricMonoidalFunctors + : Category (o ⊔ ℓ ⊔ e ⊔ o′ ⊔ ℓ′ ⊔ e′) (o ⊔ ℓ ⊔ ℓ′ ⊔ e′) (o ⊔ e′) + SymmetricMonoidalFunctors = categoryHelper record + { Obj = Lax₁.SymmetricMonoidalFunctor C D + ; _⇒_ = Lax₂.SymmetricMonoidalNaturalTransformation + ; _≈_ = λ α β → U α ≃ U β + ; id = Lax₂.id + ; _∘_ = Lax₂._∘ᵥ_ + ; assoc = assoc + ; identityˡ = identityˡ + ; identityʳ = identityʳ + ; equiv = isEquivalence U ≃-isEquivalence + ; ∘-resp-≈ = λ α₁≈β₁ α₂≈β₂ → ∘-resp-≈ α₁≈β₁ α₂≈β₂ + } + +module Strong where + + open Strong₂.SymmetricMonoidalNaturalTransformation using (U) + + SymmetricMonoidalFunctors + : Category (o ⊔ ℓ ⊔ e ⊔ o′ ⊔ ℓ′ ⊔ e′) (o ⊔ ℓ ⊔ ℓ′ ⊔ e′) (o ⊔ e′) + SymmetricMonoidalFunctors = categoryHelper record + { Obj = Strong₁.SymmetricMonoidalFunctor C D + ; _⇒_ = Strong₂.SymmetricMonoidalNaturalTransformation + ; _≈_ = λ α β → U α ≃ U β + ; id = Strong₂.id + ; _∘_ = Strong₂._∘ᵥ_ + ; assoc = assoc + ; identityˡ = identityˡ + ; identityʳ = identityʳ + ; equiv = isEquivalence U ≃-isEquivalence + ; ∘-resp-≈ = λ α₁≈β₁ α₂≈β₂ → ∘-resp-≈ α₁≈β₁ α₂≈β₂ + } -- cgit v1.2.3