aboutsummaryrefslogtreecommitdiff
path: root/Category/Dagger
diff options
context:
space:
mode:
Diffstat (limited to 'Category/Dagger')
-rw-r--r--Category/Dagger/Semiadditive.agda27
1 files changed, 26 insertions, 1 deletions
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