diff options
Diffstat (limited to 'Category')
| -rw-r--r-- | Category/Monoidal/Instance/Cospans.agda | 49 | 
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-β) | 
