diff options
Diffstat (limited to 'Category/Dagger/Semiadditive.agda')
| -rw-r--r-- | Category/Dagger/Semiadditive.agda | 27 |
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 |
