aboutsummaryrefslogtreecommitdiff
path: root/Data/WiringDiagram/Monoidal
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-08-03 19:08:47 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-08-03 19:08:47 -0500
commit514bb6e3e235f37c4e49bd703ad02a5ab31e8c0a (patch)
treeca0b19b2dfda49d0e2ac6c1aa0b87cabca89737e /Data/WiringDiagram/Monoidal
parent014e65626daa7bbd0375e5b9ad9bf0ad8addabdc (diff)
Show category of maps is monoidal
Diffstat (limited to 'Data/WiringDiagram/Monoidal')
-rw-r--r--Data/WiringDiagram/Monoidal/Braided.agda19
-rw-r--r--Data/WiringDiagram/Monoidal/Core.agda24
2 files changed, 7 insertions, 36 deletions
diff --git a/Data/WiringDiagram/Monoidal/Braided.agda b/Data/WiringDiagram/Monoidal/Braided.agda
index 7b28d85..d45d8d2 100644
--- a/Data/WiringDiagram/Monoidal/Braided.agda
+++ b/Data/WiringDiagram/Monoidal/Braided.agda
@@ -11,6 +11,7 @@ module Data.WiringDiagram.Monoidal.Braided
where
import Categories.Morphism.Reasoning π’ž as β‡’-Reasoning
+import Category.Semiadditive.Monoidal as SemiadditiveMonoidal
import Data.WiringDiagram.Core as WD
open import Categories.Category.Monoidal using (Monoidal)
@@ -21,12 +22,15 @@ open import Categories.Functor.Bifunctor using (flip-bifunctor)
open import Categories.NaturalTransformation.NaturalIsomorphism using (_≃_; niHelper)
open import Data.Product using (uncurry; _,_)
open import Data.WiringDiagram.Monoidal.Core S
- using (_⊞_; _βŠžβ‚_; σ₂₃; associatorβ‡’; associator⇐; DWD-Monoidal; BWD-Monoidal)
+ using (_⊞_; _βŠžβ‚_; associatorβ‡’; associator⇐; DWD-Monoidal; BWD-Monoidal)
renaming (module Directed to D; module Balanced to B)
open import Function using (flip)
open Category π’ž
open SemiadditiveDagger S
+
+open SemiadditiveMonoidal semiadditive using (symmetric)
+
open Symmetric symmetric using (braided; hexagon₁; hexagonβ‚‚)
open WD S using (Box; WiringDiagram; _β–‘_; _⧈_; _β‰ˆ-⧈_; _⌸_; id-⧈; _⌻_; β‰ˆ-sym)
@@ -34,19 +38,6 @@ open HomReasoning
open β‡’-Reasoning
open Equiv
-σ₂₃-⟨⟩
- : {X A B C D : Obj}
- {f : X β‡’ A}
- {g : X β‡’ B}
- {h : X β‡’ C}
- {i : X β‡’ D}
- β†’ σ₂₃ ∘ ⟨ ⟨ f , g ⟩ , ⟨ h , i ⟩ ⟩ β‰ˆ ⟨ ⟨ f , h ⟩ , ⟨ g , i ⟩ ⟩
-σ₂₃-⟨⟩ {f = f} {g} {h} {i} = begin
- σ₂₃ ∘ ⟨ ⟨ f , g ⟩ , ⟨ h , i ⟩ ⟩ β‰ˆβŸ¨ ⟨⟩∘ ⟩
- ⟨ π₁ ×₁ π₁ ∘ ⟨ ⟨ f , g ⟩ , ⟨ h , i ⟩ ⟩ , Ο€β‚‚ ×₁ Ο€β‚‚ ∘ ⟨ ⟨ f , g ⟩ , ⟨ h , i ⟩ ⟩ ⟩ β‰ˆβŸ¨ ⟨⟩-congβ‚‚ Γ—β‚βˆ˜βŸ¨βŸ© Γ—β‚βˆ˜βŸ¨βŸ© ⟩
- ⟨ ⟨ π₁ ∘ ⟨ f , g ⟩ , π₁ ∘ ⟨ h , i ⟩ ⟩ , ⟨ Ο€β‚‚ ∘ ⟨ f , g ⟩ , Ο€β‚‚ ∘ ⟨ h , i ⟩ ⟩ ⟩ β‰ˆβŸ¨ ⟨⟩-congβ‚‚ (⟨⟩-congβ‚‚ project₁ project₁) (⟨⟩-congβ‚‚ projectβ‚‚ projectβ‚‚) ⟩
- ⟨ ⟨ f , h ⟩ , ⟨ g , i ⟩ ⟩ ∎
-
swap-⧈ : (X Y : Box) β†’ WiringDiagram (X ⊞ Y) (Y ⊞ X)
swap-⧈ X Y = swap ∘ Ο€β‚‚ ⧈ swap
diff --git a/Data/WiringDiagram/Monoidal/Core.agda b/Data/WiringDiagram/Monoidal/Core.agda
index 5abd60f..daed109 100644
--- a/Data/WiringDiagram/Monoidal/Core.agda
+++ b/Data/WiringDiagram/Monoidal/Core.agda
@@ -13,33 +13,28 @@ module Data.WiringDiagram.Monoidal.Core
import Categories.Category.Monoidal.Reasoning as βŠ—-Reasoning
import Categories.Morphism as Morphism
import Categories.Morphism.Reasoning π’ž as β‡’-Reasoning
+import Category.Semiadditive.Monoidal as SemiadditiveMonoidal
import Data.WiringDiagram.Balanced as BalancedWD
import Data.WiringDiagram.Core as WD
import Data.WiringDiagram.Directed as DirectedWD
open import Categories.Category.Monoidal using (Monoidal)
-open import Categories.Category.Monoidal.Symmetric using (module Symmetric)
open import Categories.Category.Monoidal.Utilities using (pentagon-inv)
open import Categories.Functor.Bifunctor using (Bifunctor)
open import Categories.Object.Initial using (Initial; IsInitial)
open import Data.Product using (_,_; uncurryβ€²)
open SemiadditiveDagger S
+open SemiadditiveMonoidal semiadditive using (monoidal)
open BalancedWD S using (BWD)
open Category π’ž
open DirectedWD S using (DWD)
open Monoidal monoidal using (triangle; pentagon)
-open Symmetric symmetric using (braided)
open WD S using (Box; WiringDiagram; _β–‘_; _⧈_; _β‰ˆ-⧈_; _⌸_; id-⧈; _⌻_; β‰ˆ-sym)
module DWD = Category DWD
--- Swap middle two of four
-
-σ₂₃ : {A B C D : Obj} β†’ (A βŠ• B) βŠ• (C βŠ• D) β‡’ (A βŠ• C) βŠ• (B βŠ• D)
-σ₂₃ = ⟨ π₁ ×₁ π₁ , Ο€β‚‚ ×₁ Ο€β‚‚ ⟩
-
-- Monoidal unit and initial object
𝟘-β–‘ : Box
@@ -123,21 +118,6 @@ open Equiv
⟨ ⟨ π₁ , id ⟩ ∘ π₁ ×₁ π₁ , ⟨ π₁ , id ⟩ ∘ Ο€β‚‚ ×₁ Ο€β‚‚ ⟩ β‰ˆβŸ¨ Γ—β‚βˆ˜βŸ¨βŸ© ⟨
⟨ π₁ , id ⟩ ×₁ ⟨ π₁ , id ⟩ ∘ ⟨ π₁ ×₁ π₁ , Ο€β‚‚ ×₁ Ο€β‚‚ ⟩ ∎
-σ₂₃-×₁
- : {A Aβ€² B Bβ€² C Cβ€² D Dβ€² : Obj}
- {f : A β‡’ Aβ€²}
- {g : B β‡’ Bβ€²}
- {h : C β‡’ Cβ€²}
- {i : D β‡’ Dβ€²}
- β†’ (f ×₁ g) ×₁ (h ×₁ i) ∘ σ₂₃ β‰ˆ σ₂₃ ∘ (f ×₁ h) ×₁ (g ×₁ i)
-σ₂₃-×₁ {f = f} {g} {h} {i} = begin
- (f ×₁ g) ×₁ (h ×₁ i) ∘ ⟨ π₁ ×₁ π₁ , Ο€β‚‚ ×₁ Ο€β‚‚ ⟩ β‰ˆβŸ¨ Γ—β‚βˆ˜βŸ¨βŸ© ⟩
- ⟨ f ×₁ g ∘ π₁ ×₁ π₁ , h ×₁ i ∘ Ο€β‚‚ ×₁ Ο€β‚‚ ⟩ β‰ˆβŸ¨ ⟨⟩-congβ‚‚ Γ—β‚βˆ˜Γ—β‚ Γ—β‚βˆ˜Γ—β‚ ⟩
- ⟨ (f ∘ π₁) ×₁ (g ∘ π₁) , (h ∘ Ο€β‚‚) ×₁ (i ∘ Ο€β‚‚) ⟩ β‰ˆβŸ¨ ⟨⟩-congβ‚‚ (×₁-congβ‚‚ Ο€β‚βˆ˜Γ—β‚ Ο€β‚βˆ˜Γ—β‚) (×₁-congβ‚‚ Ο€β‚‚βˆ˜Γ—β‚ Ο€β‚‚βˆ˜Γ—β‚) ⟨
- ⟨ (π₁ ∘ f ×₁ h) ×₁ (π₁ ∘ g ×₁ i) , (Ο€β‚‚ ∘ f ×₁ h) ×₁ (Ο€β‚‚ ∘ g ×₁ i) ⟩ β‰ˆβŸ¨ ⟨⟩-congβ‚‚ Γ—β‚βˆ˜Γ—β‚ Γ—β‚βˆ˜Γ—β‚ ⟨
- ⟨ π₁ ×₁ π₁ ∘ (f ×₁ h) ×₁ (g ×₁ i) , Ο€β‚‚ ×₁ Ο€β‚‚ ∘ (f ×₁ h) ×₁ (g ×₁ i) ⟩ β‰ˆβŸ¨ ⟨⟩∘ ⟨
- σ₂₃ ∘ (f ×₁ h) ×₁ (g ×₁ i) ∎
-
⊞-homo
: {A B C D E F : Box}
{f : WiringDiagram A C}