From 514bb6e3e235f37c4e49bd703ad02a5ab31e8c0a Mon Sep 17 00:00:00 2001 From: Jacques Comeaux Date: Mon, 3 Aug 2026 19:08:47 -0500 Subject: Show category of maps is monoidal --- Data/WiringDiagram/Monoidal/Braided.agda | 19 +++++-------------- Data/WiringDiagram/Monoidal/Core.agda | 24 ++---------------------- 2 files changed, 7 insertions(+), 36 deletions(-) (limited to 'Data/WiringDiagram/Monoidal') 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} -- cgit v1.2.3