bsc-leon-vatthauer/agda/src/Monad/Commutative.agda

35 lines
1 KiB
Agda
Raw Normal View History

{-# OPTIONS --without-K --safe #-}
-- Commutative Monad on a symmetric monoidal category
-- https://ncatlab.org/nlab/show/commutative+monad
module Monad.Commutative where
open import Level
open import Data.Product using (_,_)
open import Categories.Category.Core
open import Categories.Category.Monoidal
open import Categories.Category.Monoidal.Symmetric
open import Categories.Monad
open import Categories.Monad.Strong
private
variable
o e : Level
record CommutativeMonad {C : Category o e} {V : Monoidal C} (S : Symmetric V) (T : StrongMonad V) : Set (o e) where
open Category C
open Symmetric S
open StrongMonad T
private
σ : {X Y} X ⊗₀ M.F.₀ Y M.F.₀ (X ⊗₀ Y)
σ {X} {Y} = strengthen.η (X , Y)
τ : {X Y} M.F.₀ X ⊗₀ Y M.F.₀ (X ⊗₀ Y)
τ {X} {Y} = M.F.₁ (braiding.⇐.η (X , Y)) σ braiding.⇒.η (M.F.₀ X , Y)
field
commutes : {X Y} M.μ.η (X ⊗₀ Y) M.F.₁ τ σ M.μ.η (X ⊗₀ Y) M.F.₁ σ τ