aboutsummaryrefslogtreecommitdiff
path: root/Category/Dagger/Semiadditive.agda
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-08-15 12:34:15 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-08-15 12:34:15 -0500
commit9a65579633967a0c02b912e6baa3e575a02b868f (patch)
treec0398cf53de1b2c0b0e2211bb81f2501c4d8688f /Category/Dagger/Semiadditive.agda
parent154ad08032f9719b0ad32aa357742fe12ff4899a (diff)
Add monoidal structure to system functor
Diffstat (limited to 'Category/Dagger/Semiadditive.agda')
-rw-r--r--Category/Dagger/Semiadditive.agda44
1 files changed, 42 insertions, 2 deletions
diff --git a/Category/Dagger/Semiadditive.agda b/Category/Dagger/Semiadditive.agda
index adcf6ed..41be19e 100644
--- a/Category/Dagger/Semiadditive.agda
+++ b/Category/Dagger/Semiadditive.agda
@@ -11,8 +11,11 @@ import Category.Semiadditive.Monoidal as SemiadditiveMonoidal
open import Categories.Category.Dagger using (HasDagger)
open import Categories.Category.Monoidal using (Monoidal)
+open import Categories.Category.Monoidal.Braided using (Braided)
+open import Categories.Category.Monoidal.Symmetric using (Symmetric)
open import Categories.Category.Monoidal.Bundle using (MonoidalCategory; SymmetricMonoidalCategory)
-open import Categories.Functor.Bifunctor using (Bifunctor)
+open import Categories.NaturalTransformation.NaturalIsomorphism using (_≃_; niHelper)
+open import Categories.Functor.Bifunctor using (Bifunctor; flip-bifunctor)
open import Categories.Morphism using (Iso)
open import Categories.Morphism.Properties π’ž using (Iso-resp-β‰ˆ; Iso-swap)
open import Category.Dagger.2-Poset using (Dagger-2-Poset; Map; Maps; unitary-isMap)
@@ -272,9 +275,10 @@ record IdempotentSemiadditiveDagger : Set (suc (o βŠ” β„“ βŠ” e)) where
maps = Maps dagger-2-poset
open Dagger-2-Poset dagger-2-poset using (category)
- open SemiadditiveMonoidal semiadditive using (monoidal)
+ open SemiadditiveMonoidal semiadditive using (monoidal; symmetric)
module M = Monoidal monoidal
+ module SM = Symmetric symmetric
×₁-functional
: {A B C D : Obj}
@@ -392,8 +396,44 @@ record IdempotentSemiadditiveDagger : Set (suc (o βŠ” β„“ βŠ” e)) where
; M
}
+ swap-unitary : {X Y : Obj} β†’ Iso category (swap {X} {Y}) (swap †)
+ swap-unitary {X} {Y} = record { Iso (Iso-resp-β‰ˆ (SM.braiding.iso (X , Y)) refl (sym swap†)) }
+
+ swap-map : {X Y : Obj} β†’ Map dagger-2-poset (X βŠ• Y) (Y βŠ• X)
+ swap-map = record
+ { map = swap
+ ; isMap = unitary-isMap dagger-2-poset swap-unitary
+ }
+
+ Οƒ : βŠ— ≃ flip-bifunctorΒ βŠ—
+ Οƒ = niHelper record
+ { Ξ· = Ξ» _ β†’ swap-map
+ ; η⁻¹ = Ξ» _ β†’ swap-map
+ ; commute = Ξ» _ β†’ swapβˆ˜Γ—β‚
+ ; iso = Ξ» X β†’ record { SM.braiding.iso X }
+ }
+
+ maps-braided : Braided maps-monoidal
+ maps-braided = record
+ { braiding = Οƒ
+ ; SM
+ }
+
+ maps-symmetric : Symmetric maps-monoidal
+ maps-symmetric = record
+ { braided = maps-braided
+ ; SM
+ }
+
maps-MC : MonoidalCategory o (β„“ βŠ” e) e
maps-MC = record
{ U = maps
; monoidal = maps-monoidal
}
+
+ maps-SMC : SymmetricMonoidalCategory o (β„“ βŠ” e) e
+ maps-SMC = record
+ { U = maps
+ ; monoidal = maps-monoidal
+ ; symmetric = maps-symmetric
+ }