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

35 lines
No EOL
1 KiB
Agda
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{-# 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.₁ σ τ