aboutsummaryrefslogtreecommitdiff
path: root/Data/WiringDiagram/Looped.agda
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-07-19 12:31:03 -0700
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-07-19 12:31:03 -0700
commit1528b2a49c0f006bdeff25a46f8f7ab6c23c73fd (patch)
tree5835961165030106816fa9cbf2b1425a91b3b8e8 /Data/WiringDiagram/Looped.agda
parentd9ede0379448f50a553af4b91ce835836e712bc3 (diff)
Simplify wiring diagrams using semiadditive daggermain
Diffstat (limited to 'Data/WiringDiagram/Looped.agda')
-rw-r--r--Data/WiringDiagram/Looped.agda28
1 files changed, 15 insertions, 13 deletions
diff --git a/Data/WiringDiagram/Looped.agda b/Data/WiringDiagram/Looped.agda
index 6f63e88..9669e4a 100644
--- a/Data/WiringDiagram/Looped.agda
+++ b/Data/WiringDiagram/Looped.agda
@@ -2,7 +2,7 @@
open import Categories.Category using (Category)
open import Categories.Functor using (Functor; _∘F_)
-open import Category.Dagger.Semiadditive using (IdempotentSemiadditiveDagger)
+open import Category.Dagger.Semiadditive using (SemiadditiveDagger; IdempotentSemiadditiveDagger)
open import Category.KaroubiComplete using (KaroubiComplete)
open import Data.WiringDiagram.Balanced using (BWD)
open import Level using (Level)
@@ -12,8 +12,10 @@ module Data.WiringDiagram.Looped
{π’ž : Category o β„“ e}
{π’Ÿ : Category oβ€² β„“β€² eβ€²}
{S : IdempotentSemiadditiveDagger π’ž}
+ (let module S = IdempotentSemiadditiveDagger S)
+ (let Sβ€² = S.semiadditiveDagger)
(karoubiComplete : KaroubiComplete π’Ÿ)
- (F : Functor (BWD S) π’Ÿ)
+ (F : Functor (BWD Sβ€²) π’Ÿ)
where
import Categories.Morphism.Idempotent as Idempotent
@@ -22,11 +24,11 @@ import Categories.Morphism.Reasoning as β‡’-Reasoning
open import Categories.Category using (Category)
open import Categories.Functor.Properties using ([_]-resp-∘)
open import Category.Dagger.2-Poset using (Dagger-2-Poset; dagger-2-poset; Maps; Map)
-open import Data.WiringDiagram.Balanced S using (Include; Push; Pull)
-open import Data.WiringDiagram.Core S using (loop; id-⧈; _β–‘_)
+open import Data.WiringDiagram.Balanced Sβ€² using (Include; Push; Pull)
+open import Data.WiringDiagram.Core Sβ€² using (loop; id-⧈; _β–‘_)
open import Data.WiringDiagram.Equalities S using (loop∘loop; loop∘push∘loop; loop∘pull∘loop)
-module BWD = Category (BWD S)
+module BWD = Category (BWD Sβ€²)
module F = Functor F
module π’ž = Category π’ž
module π’Ÿ = Category π’Ÿ
@@ -67,10 +69,10 @@ module _ (A : π’ž.Obj) where
module Push = Functor Push
module Pull = Functor Pull
-Sβ€² : Dagger-2-Poset
-Sβ€² = dagger-2-poset S
+S-≀ : Dagger-2-Poset
+S-≀ = dagger-2-poset S
-Merge : Functor (Maps Sβ€²) π’Ÿ
+Merge : Functor (Maps S-≀) π’Ÿ
Merge = record
{ Fβ‚€ = Looped
; F₁ = Ξ» {A} {B} f β†’ Ο€ B ∘ F.₁ (Push.₁ (map f)) ∘ forget A
@@ -91,8 +93,8 @@ Merge = record
π’Ÿ.id ∎
homo
: {X Y Z : π’ž.Obj}
- {f : Map Sβ€² X Y}
- {g : Map Sβ€² Y Z}
+ {f : Map S-≀ X Y}
+ {g : Map S-≀ Y Z}
β†’ Ο€ Z ∘ F.₁ (Push.₁ (map g π’ž.∘ map f)) ∘ forget X π’Ÿ.β‰ˆ (Ο€ Z ∘ F.₁ (Push.₁ (map g)) ∘ forget Y) ∘ Ο€ Y ∘ F.₁ (Push.₁ (map f)) ∘ forget X
homo {X} {Y} {Z} {fβ€²} {gβ€²} = begin
Ο€ Z ∘ F.₁ (Push.₁ (g π’ž.∘ f)) ∘ forget X β‰ˆβŸ¨ refl⟩∘⟨ F.F-resp-β‰ˆ Push.homomorphism ⟩∘⟨refl ⟩
@@ -113,7 +115,7 @@ Merge = record
resp : {A B : π’ž.Obj} {f g : A π’ž.β‡’ B} β†’ f π’ž.β‰ˆ g β†’ Ο€ B ∘ F.₁ (Push.₁ f) ∘ forget A π’Ÿ.β‰ˆ Ο€ B ∘ F.₁ (Push.₁ g) ∘ forget A
resp {A} {B} {f} {g} fβ‰ˆg = refl⟩∘⟨ F.F-resp-β‰ˆ (Push.F-resp-β‰ˆ fβ‰ˆg) ⟩∘⟨refl
-Split : Functor (op (Maps Sβ€²)) π’Ÿ
+Split : Functor (op (Maps S-≀)) π’Ÿ
Split = record
{ Fβ‚€ = Looped
; F₁ = Ξ» {A} {B} f β†’ Ο€ B ∘ F.₁ (Pull.₁ (map f)) ∘ forget A
@@ -134,8 +136,8 @@ Split = record
π’Ÿ.id ∎
homo
: {X Y Z : π’ž.Obj}
- {f : Map Sβ€² Y X}
- {g : Map Sβ€² Z Y}
+ {f : Map S-≀ Y X}
+ {g : Map S-≀ Z Y}
β†’ Ο€ Z ∘ F.₁ (Pull.₁ (map f π’ž.∘ map g)) ∘ forget X π’Ÿ.β‰ˆ (Ο€ Z ∘ F.₁ (Pull.₁ (map g)) ∘ forget Y) ∘ Ο€ Y ∘ F.₁ (Pull.₁ (map f)) ∘ forget X
homo {X} {Y} {Z} {fβ€²} {gβ€²} = begin
Ο€ Z ∘ F.₁ (Pull.₁ (f π’ž.∘ g)) ∘ forget X β‰ˆβŸ¨ refl⟩∘⟨ F.F-resp-β‰ˆ Pull.homomorphism ⟩∘⟨refl ⟩