From 9e2f3f3bb9916dca8d4ad4b162ce5b089c26b82e Mon Sep 17 00:00:00 2001 From: Jacques Comeaux Date: Mon, 13 Jul 2026 16:06:43 -0700 Subject: Construct Sys functor from wiring diagrams to Cats --- Category/Dagger/Semiadditive.agda | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'Category') diff --git a/Category/Dagger/Semiadditive.agda b/Category/Dagger/Semiadditive.agda index a6a9e57..e8a9b39 100644 --- a/Category/Dagger/Semiadditive.agda +++ b/Category/Dagger/Semiadditive.agda @@ -10,6 +10,7 @@ import Categories.Morphism.Reasoning as β‡’-Reasoning open import Categories.Category.BinaryProducts π’ž using (BinaryProducts) open import Categories.Category.Cartesian π’ž using (Cartesian) +open import Categories.Category.Cartesian.Monoidal using (module CartesianMonoidal) open import Categories.Category.Cocartesian π’ž using (Cocartesian) open import Categories.Category.Cocartesian.Monoidal using (module CocartesianMonoidal) open import Categories.Category.Cocartesian.SymmetricMonoidal using (module CocartesianSymmetricMonoidal) @@ -54,7 +55,7 @@ record SemiadditiveDagger : Set (suc (o βŠ” β„“ βŠ” e)) where open Cocartesian cocartesian using ([]∘+-assocΚ³; []∘+-swap) renaming (_+_ to _βŠ•β‚€_; _+₁_ to infixr 10 _βŠ•β‚_; -+- to βŠ•) public open CocartesianMonoidal cocartesian using (+-monoidal) public open Cocartesian cocartesian using (i₁; iβ‚‚; Β‘) public - open Cocartesian cocartesian using (βŠ₯; [_,_]; ∘[]; []∘+₁; []-congβ‚‚; coproduct; Β‘-unique; inject₁; injectβ‚‚; +-unique; +-Ξ·) + open Cocartesian cocartesian using (βŠ₯; [_,_]; ∘[]; []∘+₁; []-congΛ‘; []-congβ‚‚; coproduct; Β‘-unique; inject₁; injectβ‚‚; +-unique; +-Ξ·) renaming (βˆ‡βˆ˜+₁ to β–½βˆ˜+₁) open CocartesianSymmetricMonoidal π’ž cocartesian using (+-symmetric) open HasDagger dagger using (_†; †-involutive; ⟨_βŸ©β€ ; †-identity; †-homomorphism) public open Monoidal +-monoidal using (unitorΛ‘-commute-from; unitorΚ³-commute-from; assoc-commute-from; module unitorΛ‘; module unitorΚ³; module associator) @@ -421,6 +422,30 @@ record SemiadditiveDagger : Set (suc (o βŠ” β„“ βŠ” e)) where ; products = products } + open Cartesian cartesian using (_×₁_) + open CartesianMonoidal cartesian using (monoidal) + open Shorthands monoidal using () renaming (Ξ±β‡’ to Ξ±β‡’β€²) + + ×₁-βŠ•β‚ : {A B C D : Obj} (f : A β‡’ B) (g : C β‡’ D) β†’ f ×₁ g β‰ˆ f βŠ•β‚ g + ×₁-βŠ•β‚ f g = begin + (f ∘ p₁) βŠ•β‚ (g ∘ pβ‚‚) ∘ β–³ β‰ˆβŸ¨ pushΛ‘ βŠ—-distrib-over-∘ ⟩ + f βŠ•β‚ g ∘ p₁ βŠ•β‚ pβ‚‚ ∘ β–³ β‰ˆβŸ¨ elimΚ³ pβ‚βŠ•pβ‚‚βˆ˜β–³ ⟩ + f βŠ•β‚ g ∎ + + β‰ˆΞ±β‡’ : {A B C : Obj} β†’ Ξ±β‡’β€² {A} {B} {C} β‰ˆ Ξ±β‡’ {A} {B} {C} + β‰ˆΞ±β‡’ {A} {B} {C} = begin + (p₁ ∘ p₁) βŠ•β‚ ((pβ‚‚ ∘ p₁) βŠ•β‚ pβ‚‚ ∘ β–³) ∘ β–³ β‰ˆβŸ¨ reflβŸ©βŠ—βŸ¨ pushΛ‘ split₁ˑ ⟩∘⟨refl ⟩ + (p₁ ∘ p₁) βŠ•β‚ ((pβ‚‚ βŠ•β‚ id) ∘ (p₁ βŠ•β‚ pβ‚‚) ∘ β–³) ∘ β–³ β‰ˆβŸ¨ reflβŸ©βŠ—βŸ¨ elimΚ³ pβ‚βŠ•pβ‚‚βˆ˜β–³ ⟩∘⟨refl ⟩ + (p₁ ∘ p₁) βŠ•β‚ (pβ‚‚ βŠ•β‚ id) ∘ β–³ β‰ˆβŸ¨ †-homomorphism βŸ©βŠ—βŸ¨ (reflβŸ©βŠ—βŸ¨ †-identity ) ⟩∘⟨refl ⟨ + ((i₁ ∘ i₁) †) βŠ•β‚ (pβ‚‚ βŠ•β‚ (id †)) ∘ β–³ β‰ˆβŸ¨ reflβŸ©βŠ—βŸ¨ †-resp-βŠ— ⟩∘⟨refl ⟨ + ((i₁ ∘ i₁) †) βŠ•β‚ ((iβ‚‚ βŠ•β‚ id) †) ∘ β–³ β‰ˆβŸ¨ †-resp-βŠ— ⟩∘⟨refl ⟨ + ((i₁ ∘ i₁) βŠ•β‚ (iβ‚‚ βŠ•β‚ id)) † ∘ β–³ β‰ˆβŸ¨ †-homomorphism ⟨ + (β–½ ∘ ((i₁ ∘ i₁) βŠ•β‚ (iβ‚‚ βŠ•β‚ id))) † β‰ˆβŸ¨ ⟨ β–½βˆ˜+₁ βŸ©β€  ⟩ + [ i₁ ∘ i₁ , iβ‚‚ βŠ•β‚ id ] † β‰ˆβŸ¨ ⟨ []-congΛ‘ ([]-congΛ‘ identityΚ³) βŸ©β€  ⟩ + α⇐ † β‰ˆβŸ¨ ⟨ α≅† βŸ©β€  ⟨ + Ξ±β‡’ † † β‰ˆβŸ¨ †-involutive Ξ±β‡’ ⟩ + Ξ±β‡’ ∎ + record IdempotentSemiadditiveDagger : Set (suc (o βŠ” β„“ βŠ” e)) where field -- cgit v1.2.3