aboutsummaryrefslogtreecommitdiff
path: root/Category/Dagger/Semiadditive.agda
diff options
context:
space:
mode:
Diffstat (limited to 'Category/Dagger/Semiadditive.agda')
-rw-r--r--Category/Dagger/Semiadditive.agda34
1 files changed, 15 insertions, 19 deletions
diff --git a/Category/Dagger/Semiadditive.agda b/Category/Dagger/Semiadditive.agda
index 283f270..bf8c929 100644
--- a/Category/Dagger/Semiadditive.agda
+++ b/Category/Dagger/Semiadditive.agda
@@ -3,21 +3,20 @@
open import Level using (Level; suc; _⊔_)
open import Categories.Category using (Category)
-module Category.Dagger.Semiadditive
- {o ℓ e : Level}
- (𝒞 : Category o ℓ e)
- where
+module Category.Dagger.Semiadditive {o ℓ e : Level} (𝒞 : Category o ℓ e) where
import Categories.Category.Monoidal.Reasoning as ⊗-Reasoning
import Categories.Morphism.Reasoning as ⇒-Reasoning
-open import Categories.Category.BinaryProducts using (BinaryProducts)
-open import Categories.Category.Cocartesian 𝒞 using (Cocartesian; module CocartesianMonoidal; module CocartesianSymmetricMonoidal)
+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)
open import Categories.Category.Dagger using (HasDagger)
open import Categories.Category.Monoidal using (Monoidal)
open import Categories.Category.Monoidal.Symmetric using (module Symmetric)
open import Categories.Category.Monoidal.Symmetric.Properties using () renaming (module Shorthands to σ-Shorthands)
open import Categories.Category.Monoidal.Utilities using (module Shorthands)
+open import Categories.Functor using (Functor)
open import Categories.Object.Duality using (Coproduct⇒coProduct)
open import Relation.Binary using (Rel)
@@ -27,9 +26,9 @@ record DaggerCocartesianMonoidal : Set (suc (o ⊔ ℓ ⊔ e)) where
cocartesian : Cocartesian
dagger : HasDagger 𝒞
- open Cocartesian cocartesian using (i₁; i₂)
- open CocartesianMonoidal cocartesian using (+-monoidal; _⊗₀_; _⊗₁_)
- open CocartesianSymmetricMonoidal cocartesian using (+-symmetric)
+ open Cocartesian cocartesian using (i₁; i₂) renaming (_+₁_ to _⊗₁_)
+ open CocartesianMonoidal cocartesian using (+-monoidal)
+ open CocartesianSymmetricMonoidal 𝒞 cocartesian using (+-symmetric)
open HasDagger dagger using (_†; isUnitary; isSelfAdjoint)
open Shorthands +-monoidal using (λ⇒; λ⇐; ρ⇒; ρ⇐; α⇒; α⇐)
open σ-Shorthands +-symmetric using (σ⇒)
@@ -49,11 +48,11 @@ record SemiadditiveDagger : Set (suc (o ⊔ ℓ ⊔ e)) where
daggerCocartesianMonoidal : DaggerCocartesianMonoidal
open DaggerCocartesianMonoidal daggerCocartesianMonoidal public
- open CocartesianMonoidal cocartesian using (+-monoidal) renaming (_⊗₀_ to _⊕₀_; _⊗₁_ to _⊕₁_; ⊗ to ⊕) public
-
+ 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; +-g-η)
- open CocartesianSymmetricMonoidal cocartesian using (+-symmetric)
+ 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)
open σ-Shorthands +-symmetric using (σ⇒)
@@ -61,6 +60,8 @@ record SemiadditiveDagger : Set (suc (o ⊔ ℓ ⊔ e)) where
open Shorthands +-monoidal using (λ⇒; λ⇐; ρ⇒; ρ⇐; α⇒; α⇐)
open Category 𝒞
+ module ⊕ = Functor ⊕
+
-- projection maps
p₁ : {A B : Obj} → A ⊕₀ B ⇒ A
p₁ = i₁ †
@@ -76,11 +77,6 @@ record SemiadditiveDagger : Set (suc (o ⊔ ℓ ⊔ e)) where
△ : {A : Obj} → A ⇒ A ⊕₀ A
△ = ▽ †
- private
- op-binaryProducts : BinaryProducts op
- op-binaryProducts = record { product = Coproduct⇒coProduct 𝒞 coproduct }
- open BinaryProducts op-binaryProducts using () renaming (assocʳ∘⟨⟩ to []-assoc; swap∘⟨⟩ to []∘swap)
-
open ⊗-Reasoning +-monoidal
open ⇒-Reasoning 𝒞
@@ -88,7 +84,7 @@ record SemiadditiveDagger : Set (suc (o ⊔ ℓ ⊔ e)) where
▽-assoc = begin
[ id , id ] ∘ [ id , id ] ⊕₁ id ≈⟨ []∘+₁ ⟩
[ id ∘ [ id , id ] , id ∘ id ] ≈⟨ []-cong₂ identityˡ identityˡ ⟩
- [ [ id , id ] , id ] ≈⟨ []-assoc ⟨
+ [ [ id , id ] , id ] ≈⟨ []∘+-assocʳ ⟨
[ id , [ id , id ] ] ∘ α⇒ ≈⟨ []-cong₂ identityˡ identityˡ ⟩∘⟨refl ⟨
[ id ∘ id , id ∘ [ id , id ] ] ∘ α⇒ ≈⟨ pushˡ (Equiv.sym []∘+₁) ⟩
[ id , id ] ∘ id ⊕₁ [ id , id ] ∘ α⇒ ∎
@@ -144,7 +140,7 @@ record SemiadditiveDagger : Set (suc (o ⊔ ℓ ⊔ e)) where
ρ⇐  ∎
▽-comm : {A : Obj} → ▽ {A} ∘ σ⇒ ≈ ▽
- ▽-comm = []∘swap
+ ▽-comm = []∘+-swap
△-comm : {A : Obj} → σ⇒ ∘ △ {A} ≈ △
△-comm = begin