aboutsummaryrefslogtreecommitdiff
path: root/Data/WiringDiagram/Balanced.agda
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-03-14 16:49:35 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-03-14 16:49:35 -0500
commit46f36b99c92225b374900457e02d89e9ffcffb52 (patch)
treecf8916fbe42f51e29a8ac05eab880f946747b019 /Data/WiringDiagram/Balanced.agda
parent8d7639b3caf615651fbc668b5fda17ddabb6edc6 (diff)
Refactor wiring diagrams
Diffstat (limited to 'Data/WiringDiagram/Balanced.agda')
-rw-r--r--Data/WiringDiagram/Balanced.agda38
1 files changed, 38 insertions, 0 deletions
diff --git a/Data/WiringDiagram/Balanced.agda b/Data/WiringDiagram/Balanced.agda
new file mode 100644
index 0000000..09656fc
--- /dev/null
+++ b/Data/WiringDiagram/Balanced.agda
@@ -0,0 +1,38 @@
+{-# OPTIONS --without-K --safe #-}
+
+open import Categories.Category using (Category)
+open import Category.Dagger.Semiadditive using (IdempotentSemiadditiveDagger)
+open import Level using (Level)
+
+module Data.WiringDiagram.Balanced
+ {o ℓ e : Level}
+ {𝒞 : Category o ℓ e}
+ (S : IdempotentSemiadditiveDagger 𝒞)
+ where
+
+open import Categories.Functor using (Functor)
+open import Data.WiringDiagram.Core S using (WiringDiagram; _□_)
+open import Data.WiringDiagram.Directed S using (DWD)
+open import Function using (id)
+
+open Category 𝒞 using (Obj)
+
+-- The category of balanced wiring diagrams
+BWD : Category o ℓ e
+BWD = record
+ { Obj = Obj
+ ; _⇒_ = λ A B → WiringDiagram (A □ A) (B □ B)
+ ; Category DWD
+ }
+
+-- Inclusion functor from BWD to DWD
+Include : Functor BWD DWD
+Include = record
+ { F₀ = λ A → A □ A
+ ; F₁ = id
+ ; identity = Equiv.refl
+ ; homomorphism = Equiv.refl
+ ; F-resp-≈ = id
+ }
+ where
+ open Category DWD using (module Equiv)