diff options
Diffstat (limited to 'Category/Construction/CMonoids')
| -rw-r--r-- | Category/Construction/CMonoids/Properties.agda | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Category/Construction/CMonoids/Properties.agda b/Category/Construction/CMonoids/Properties.agda new file mode 100644 index 0000000..fab8b0b --- /dev/null +++ b/Category/Construction/CMonoids/Properties.agda @@ -0,0 +1,74 @@ +{-# OPTIONS --without-K --safe #-} + +open import Categories.Category.Core using (Category) +open import Categories.Category.Monoidal.Core using (Monoidal) +open import Categories.Category.Monoidal.Symmetric using (Symmetric) +open import Level using (Level; _β_) + +module Category.Construction.CMonoids.Properties + {o β e : Level} + {π : Category o β e} + {monoidal : Monoidal π} + (symmetric : Symmetric monoidal) + where + +import Categories.Category.Monoidal.Reasoning monoidal as β-Reasoning +import Categories.Morphism.Reasoning π as β-Reasoning +import Category.Construction.Monoids.Properties {o} {β} {e} {π} monoidal as Monoids + +open import Categories.Category using (_[_,_]) +open import Categories.Category.Monoidal.Symmetric.Properties symmetric using (module Shorthands) +open import Categories.Morphism using (_β
_) +open import Categories.Morphism.Notation using (_[_β
_]) +open import Categories.Object.Monoid monoidal using (Monoid) +open import Category.Construction.CMonoids symmetric using (CMonoids) +open import Data.Product using (Ξ£-syntax; _,_) +open import Object.Monoid.Commutative symmetric using (CommutativeMonoid) + +module π = Category π + +open CommutativeMonoid using (monoid) renaming (Carrier to β£_β£) + +transport-by-iso + : {X : π.Obj} + β (M : CommutativeMonoid) + β π [ β£ M β£ β
X ] + β Ξ£[ Xβ β CommutativeMonoid ] CMonoids [ M β
Xβ ] +transport-by-iso {X} M β£Mβ£β
X + using (Xββ² , Mβ
Xββ²) β Monoids.transport-by-iso {X} (monoid M) β£Mβ£β
X = Xβ , Mβ
Xβ + where + module Mβ
Xββ² = _β
_ Mβ
Xββ² + open _β
_ β£Mβ£β
X + module Xββ² = Monoid Xββ² + open CommutativeMonoid M + open π using (_β_; _β_) + open Shorthands + open β-Reasoning + open β-Reasoning + open Symmetric symmetric using (_ββ_; module braiding) + comm : from β ΞΌ β to ββ to β (from β ΞΌ β to ββ to) β Οβ + comm = begin + from β ΞΌ β to ββ to ββ¨ push-center (commutative) β© + from β ΞΌ β Οβ β to ββ to ββ¨ pushΚ³ (pushΚ³ (braiding.β.commute (to , to))) β© + (from β ΞΌ β to ββ to) β Οβ β + Xβ : CommutativeMonoid + Xβ = record + { Carrier = X + ; isCommutativeMonoid = record + { isMonoid = Xββ².isMonoid + ; commutative = comm + } + } + MβXβ : CMonoids [ M , Xβ ] + MβXβ = record { monoidβ = Mβ
Xββ².from } + XββM : CMonoids [ Xβ , M ] + XββM = record { monoidβ = Mβ
Xββ².to } + Mβ
Xβ : CMonoids [ M β
Xβ ] + Mβ
Xβ = record + { from = MβXβ + ; to = XββM + ; iso = record + { isoΛ‘ = isoΛ‘ + ; isoΚ³ = isoΚ³ + } + } |
