aboutsummaryrefslogtreecommitdiff
path: root/Category/Monoidal
diff options
context:
space:
mode:
Diffstat (limited to 'Category/Monoidal')
-rw-r--r--Category/Monoidal/Instance/Cospans.agda49
1 files changed, 43 insertions, 6 deletions
diff --git a/Category/Monoidal/Instance/Cospans.agda b/Category/Monoidal/Instance/Cospans.agda
index c2ab8ed..228ddea 100644
--- a/Category/Monoidal/Instance/Cospans.agda
+++ b/Category/Monoidal/Instance/Cospans.agda
@@ -11,22 +11,26 @@ import Categories.Morphism.Reasoning.Iso as IsoReasoning
open import Categories.Category using (_[_,_]; _[_β‰ˆ_]; _[_∘_]; Category)
open import Categories.Category.BinaryProducts using (BinaryProducts)
open import Categories.Category.Cartesian.Bundle using (CartesianCategory)
-open import Categories.Category.Cocartesian using (module CocartesianMonoidal)
+open import Categories.Category.Cocartesian using (module CocartesianMonoidal; module CocartesianSymmetricMonoidal)
+open import Categories.Category.Monoidal.Symmetric using (Symmetric)
open import Categories.Category.Monoidal.Braided using (Braided)
open import Categories.Category.Monoidal.Core using (Monoidal)
open import Categories.Functor using (Functor)
open import Categories.Functor.Properties using ([_]-resp-β‰…)
-open import Category.Instance.Cospans π’ž using (Cospans)
+open import Categories.NaturalTransformation.NaturalIsomorphism using (niHelper)
+open import Category.Instance.Cospans π’ž using (Cospans; Cospan)
open import Category.Instance.Properties.FinitelyCocompletes {o} {β„“} {e} using (FinitelyCocompletes-CC)
-open import Category.Monoidal.Instance.Cospans.Newsquare {o} {β„“} {e} using (module NewSquare)
+open import Category.Monoidal.Instance.Cospans.Lift {o} {β„“} {e} using (module Square)
open import Data.Product.Base using (_,_)
open import Functor.Instance.Cospan.Stack π’ž using (βŠ—)
open import Functor.Instance.Cospan.Embed π’ž using (L; L-resp-βŠ—)
module π’ž = FinitelyCocompleteCategory π’ž
open CocartesianMonoidal π’ž.U π’ž.cocartesian using (βŠ₯+--id; -+βŠ₯-id; βŠ₯+Aβ‰…A; A+βŠ₯β‰…A; +-monoidal)
+open CocartesianSymmetricMonoidal π’ž.U π’ž.cocartesian using (+-symmetric)
open Monoidal +-monoidal using () renaming (triangle to tri; pentagon to pent)
+open Symmetric +-symmetric using (braiding) renaming (hexagon₁ to hex₁; hexagonβ‚‚ to hexβ‚‚; commutative to comm)
open import Categories.Category.Monoidal.Utilities +-monoidal using (associator-naturalIsomorphism)
module _ where
@@ -34,6 +38,9 @@ module _ where
open CartesianCategory FinitelyCocompletes-CC using (products)
open BinaryProducts products using (_Γ—_)
+ π’žΓ—π’ž : FinitelyCocompleteCategory o β„“ e
+ π’žΓ—π’ž = π’ž Γ— π’ž
+
[π’žΓ—π’ž]Γ—π’ž : FinitelyCocompleteCategory o β„“ e
[π’žΓ—π’ž]Γ—π’ž = (π’ž Γ— π’ž) Γ— π’ž
@@ -56,9 +63,9 @@ CospansMonoidal = record
where
module βŠ— = Functor βŠ—
module Cospans = Category Cospans
- module UnitorΛ‘ = NewSquare βŠ₯+--id
- module UnitorΚ³ = NewSquare -+βŠ₯-id
- module Associator = NewSquare {[π’žΓ—π’ž]Γ—π’ž} {π’ž} associator-naturalIsomorphism
+ module UnitorΛ‘ = Square βŠ₯+--id
+ module UnitorΚ³ = Square -+βŠ₯-id
+ module Associator = Square {[π’žΓ—π’ž]Γ—π’ž} {π’ž} associator-naturalIsomorphism
open Cospans.HomReasoning
open Cospans using (id)
open Cospans.Equiv
@@ -72,3 +79,33 @@ CospansMonoidal = record
triangle = sym L-resp-βŠ— ⟩∘⟨refl β—‹ sym homomorphism β—‹ L-resp-β‰ˆ tri β—‹ L-resp-βŠ—
pentagon : {W X Y Z : Obj} β†’ Cospans [ Cospans [ βŠ—.₁ (id {W} , Ξ±β‡’ {(X , Y) , Z}) ∘ Cospans [ Ξ±β‡’ ∘ βŠ—.₁ (Ξ±β‡’ , id) ] ] β‰ˆ Cospans [ Ξ±β‡’ ∘ Ξ±β‡’ ] ]
pentagon = sym L-resp-βŠ— ⟩∘⟨ refl ⟩∘⟨ sym L-resp-βŠ— β—‹ refl⟩∘⟨ sym homomorphism β—‹ sym homomorphism β—‹ L-resp-β‰ˆ pent β—‹ homomorphism
+
+CospansBraided : Braided CospansMonoidal
+CospansBraided = record
+ { braiding = niHelper record
+ { η = λ { (X , Y) → Braiding.FX≅GX′.from {X , Y} }
+ ; η⁻¹ = Ξ» { (Y , X) β†’ Braiding.FXβ‰…GXβ€².to {Y , X} }
+ ; commute = Ξ» { {X , Y} {Xβ€² , Yβ€²} (f , g) β†’ Braiding.from (record { f₁ = f₁ f , f₁ g ; fβ‚‚ = fβ‚‚ f , fβ‚‚ g }) }
+ ; iso = λ { (X , Y) → Braiding.FX≅GX′.iso {X , Y} }
+ }
+ ; hexagon₁ = sym L-resp-βŠ— ⟩∘⟨ refl ⟩∘⟨ sym L-resp-βŠ— β—‹ refl⟩∘⟨ sym homomorphism β—‹ sym homomorphism β—‹ L-resp-β‰ˆ hex₁ β—‹ homomorphism β—‹ refl⟩∘⟨ homomorphism
+ ; hexagonβ‚‚ = sym L-resp-βŠ— ⟩∘⟨refl ⟩∘⟨ sym L-resp-βŠ— β—‹ sym homomorphism ⟩∘⟨refl β—‹ sym homomorphism β—‹ L-resp-β‰ˆ hexβ‚‚ β—‹ homomorphism β—‹ homomorphism ⟩∘⟨refl
+ }
+ where
+ open Cospan
+ module Cospans = Category Cospans
+ open Cospans.Equiv
+ open Cospans.HomReasoning
+ module Braiding = Square {π’žΓ—π’ž} {π’ž} braiding
+ open Functor L renaming (F-resp-β‰ˆ to L-resp-β‰ˆ)
+
+CospansSymmetric : Symmetric CospansMonoidal
+CospansSymmetric = record
+ { braided = CospansBraided
+ ; commutative = sym homomorphism β—‹ L-resp-β‰ˆ comm β—‹ identity
+ }
+ where
+ module Cospans = Category Cospans
+ open Cospans.Equiv
+ open Cospans.HomReasoning
+ open Functor L renaming (F-resp-β‰ˆ to L-resp-β‰ˆ)