aboutsummaryrefslogtreecommitdiff
path: root/Category
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-07-19 12:31:03 -0700
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-07-19 12:31:03 -0700
commit1528b2a49c0f006bdeff25a46f8f7ab6c23c73fd (patch)
tree5835961165030106816fa9cbf2b1425a91b3b8e8 /Category
parentd9ede0379448f50a553af4b91ce835836e712bc3 (diff)
Simplify wiring diagrams using semiadditive daggermain
Diffstat (limited to 'Category')
-rw-r--r--Category/BinaryBiproducts.agda19
-rw-r--r--Category/Semiadditive.agda23
2 files changed, 28 insertions, 14 deletions
diff --git a/Category/BinaryBiproducts.agda b/Category/BinaryBiproducts.agda
index 790c73a..c975d18 100644
--- a/Category/BinaryBiproducts.agda
+++ b/Category/BinaryBiproducts.agda
@@ -224,6 +224,13 @@ record BinaryBiproducts : Set (levelOfTerm π’ž) where
[ id , βˆ‡ ] ∘ +-assocΛ‘ β‰ˆβŸ¨ pushΛ‘ (Equiv.sym βˆ‡βˆ˜+₁) ⟩
βˆ‡ ∘ id +₁ βˆ‡ ∘ +-assocΛ‘ ∎
+ βˆ‡-assoc-×₁ : {A : Obj} β†’ βˆ‡ {A} ∘ βˆ‡ ×₁ id β‰ˆ βˆ‡ ∘ id ×₁ βˆ‡ ∘ assocΛ‘
+ βˆ‡-assoc-×₁ = begin
+ βˆ‡ ∘ βˆ‡ ×₁ id β‰ˆβŸ¨ refl⟩∘⟨ ×₁-+₁ βˆ‡ id ⟩
+ βˆ‡ ∘ βˆ‡ +₁ id β‰ˆβŸ¨ βˆ‡-assoc ⟩
+ βˆ‡ ∘ id +₁ βˆ‡ ∘ +-assocΛ‘ β‰ˆβŸ¨ refl⟩∘⟨ ×₁-+₁ id βˆ‡ ⟩∘⟨ assocΛ‘β‰ˆ+-assocΛ‘ ⟨
+ βˆ‡ ∘ id ×₁ βˆ‡ ∘ assocΛ‘ ∎
+
Ξ”-assoc : {A : Obj} β†’ id ×₁ Ξ” ∘ Ξ” {A} β‰ˆ assocΛ‘ ∘ Ξ” ×₁ id ∘ Ξ”
Ξ”-assoc = begin
id ×₁ Ξ” ∘ Ξ” β‰ˆβŸ¨ Γ—β‚βˆ˜Ξ” ⟩
@@ -262,3 +269,15 @@ record BinaryBiproducts : Set (levelOfTerm π’ž) where
Ξ” ∘ f β‰ˆβŸ¨ Ξ”βˆ˜Β βŸ©
⟨ f , f ⟩ β‰ˆβŸ¨ Γ—β‚βˆ˜Ξ” ⟨
f ×₁ f ∘ Ξ” ∎
+
+ β‡’βˆ‡-×₁ : {A B : Obj} {f : A β‡’ B} β†’ f ∘ βˆ‡ β‰ˆ βˆ‡ ∘ f ×₁ f
+ β‡’βˆ‡-×₁ {f = f} = begin
+ f ∘ βˆ‡ β‰ˆβŸ¨ β‡’βˆ‡ ⟩
+ βˆ‡ ∘ f +₁ f β‰ˆβŸ¨ refl⟩∘⟨ ×₁-+₁ f f ⟨
+ βˆ‡ ∘ f ×₁ f ∎
+
+ Γ—β‚βˆ˜first : {A B C D E : Obj} {f : B β‡’ C} {g : D β‡’ E} {h : A β‡’ B} β†’ (f ×₁ g) ∘ first h β‰ˆ (f ∘ h) ×₁ g
+ Γ—β‚βˆ˜first = Γ—β‚βˆ˜Γ—β‚ β—‹ ×₁-congβ‚‚ Equiv.refl identityΚ³
+
+ Γ—β‚βˆ˜second : {A B C D E : Obj} {f : A β‡’ B} {g : D β‡’ E} {h : C β‡’ D} β†’ (f ×₁ g) ∘ second h β‰ˆ f ×₁ (g ∘ h)
+ Γ—β‚βˆ˜second = Γ—β‚βˆ˜Γ—β‚ β—‹ ×₁-congβ‚‚ identityΚ³ Equiv.refl
diff --git a/Category/Semiadditive.agda b/Category/Semiadditive.agda
index 3e8dbc4..9bbc9c7 100644
--- a/Category/Semiadditive.agda
+++ b/Category/Semiadditive.agda
@@ -57,18 +57,14 @@ record Semiadditive : Set (levelOfTerm π’ž) where
+-assoc : (x y z : A β‡’ B) β†’ (x + y) + z β‰ˆ x + (y + z)
+-assoc x y z = begin
- βˆ‡ ∘ (βˆ‡ ∘ x ×₁ y ∘ Ξ”) ×₁ z ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pushΛ‘ (Equiv.sym firstβˆ˜Γ—β‚) ⟩
- βˆ‡ ∘ βˆ‡ ×₁ id ∘ (x ×₁ y ∘ Ξ”) ×₁ z ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ ×₁-congβ‚‚ Equiv.refl identityΚ³ ⟩∘⟨refl ⟨
- βˆ‡ ∘ βˆ‡ ×₁ id ∘ (x ×₁ y ∘ Ξ”) ×₁ (z ∘ id) ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ pushΛ‘ (Equiv.sym Γ—β‚βˆ˜Γ—β‚) ⟩
- βˆ‡ ∘ βˆ‡ ×₁ id ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ ×₁-+₁ βˆ‡ id ⟩∘⟨refl ⟩
- βˆ‡ ∘ βˆ‡ +₁ id ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ extendΚ³ βˆ‡-assoc ⟩
- βˆ‡ ∘ (id +₁ βˆ‡ ∘ +-assocΛ‘) ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ (refl⟩∘⟨ assocΛ‘β‰ˆ+-assocΛ‘) ⟩∘⟨refl ⟨
- βˆ‡ ∘ (id +₁ βˆ‡ ∘ assocΛ‘) ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΚ³ (extendΚ³ assocΛ‘βˆ˜Γ—β‚) ⟩
- βˆ‡ ∘ id +₁ βˆ‡ ∘ x ×₁ (y ×₁ z) ∘ assocΛ‘ ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ ×₁-+₁ id βˆ‡ ⟩∘⟨ refl⟩∘⟨ Ξ”-assoc ⟨
- βˆ‡ ∘ id ×₁ βˆ‡ ∘ x ×₁ (y ×₁ z) ∘ id ×₁ Ξ” ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΛ‘ secondβˆ˜Γ—β‚ ⟩
- βˆ‡ ∘ x ×₁ (βˆ‡ ∘ y ×₁ z) ∘ id ×₁ Ξ” ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΛ‘ Γ—β‚βˆ˜Γ—β‚ ⟩
- βˆ‡ ∘ (x ∘ id) ×₁ ((βˆ‡ ∘ y ×₁ z) ∘ Ξ”) ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ ×₁-congβ‚‚ identityΚ³ assoc ⟩∘⟨refl ⟩
- βˆ‡ ∘ x ×₁ (βˆ‡ ∘ y ×₁ z ∘ Ξ”) ∘ Ξ” ∎
+ βˆ‡ ∘ (βˆ‡ ∘ x ×₁ y ∘ Ξ”) ×₁ z ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pushΛ‘ (Equiv.sym firstβˆ˜Γ—β‚) ⟩
+ βˆ‡ ∘ βˆ‡ ×₁ id ∘ (x ×₁ y ∘ Ξ”) ×₁ z ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ pushΛ‘ (Equiv.sym Γ—β‚βˆ˜first) ⟩
+ βˆ‡ ∘ βˆ‡ ×₁ id ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ extendΚ³ βˆ‡-assoc-×₁ ⟩
+ βˆ‡ ∘ (id ×₁ βˆ‡ ∘ assocΛ‘) ∘ (x ×₁ y) ×₁ z ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΚ³ (extendΚ³ assocΛ‘βˆ˜Γ—β‚) ⟩
+ βˆ‡ ∘ id ×₁ βˆ‡ ∘ x ×₁ y ×₁ z ∘ assocΛ‘ ∘ Ξ” ×₁ id ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ refl⟩∘⟨ Ξ”-assoc ⟨
+ βˆ‡ ∘ id ×₁ βˆ‡ ∘ x ×₁ y ×₁ z ∘ id ×₁ Ξ” ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ pullΛ‘ Γ—β‚βˆ˜second ⟩
+ βˆ‡ ∘ id ×₁ βˆ‡ ∘ x ×₁ (y ×₁ z ∘ Ξ”) ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΛ‘ secondβˆ˜Γ—β‚ ⟩
+ βˆ‡ ∘ x ×₁ (βˆ‡ ∘ y ×₁ z ∘ Ξ”) ∘ Ξ” ∎
+-identityΛ‘ : (x : A β‡’ B) β†’ zeroβ‡’ + x β‰ˆ x
+-identityΛ‘ x = begin
@@ -141,8 +137,7 @@ record Semiadditive : Set (levelOfTerm π’ž) where
{k : C β‡’ D}
β†’ k ∘ (f + g) ∘ h β‰ˆ k ∘ f ∘ h + k ∘ g ∘ h
+-resp-∘ {f = f} {g} {h} {k} = begin
- k ∘ (βˆ‡ ∘ f ×₁ g ∘ Ξ”) ∘ h β‰ˆβŸ¨ extendΚ³ (extendΚ³ β‡’βˆ‡) ⟩
- βˆ‡ ∘ (k +₁ k ∘ f ×₁ g ∘ Ξ”) ∘ h β‰ˆβŸ¨ refl⟩∘⟨ (×₁-+₁ k k ⟩∘⟨refl) ⟩∘⟨refl ⟨
+ k ∘ (βˆ‡ ∘ f ×₁ g ∘ Ξ”) ∘ h β‰ˆβŸ¨ extendΚ³ (extendΚ³ β‡’βˆ‡-×₁) ⟩
βˆ‡ ∘ (k ×₁ k ∘ f ×₁ g ∘ Ξ”) ∘ h β‰ˆβŸ¨ refl⟩∘⟨ pullΚ³ (pullΚ³ β‡’Ξ”) ⟩
βˆ‡ ∘ k ×₁ k ∘ f ×₁ g ∘ h ×₁ h ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ refl⟩∘⟨ pullΛ‘ Γ—β‚βˆ˜Γ—β‚ ⟩
βˆ‡ ∘ k ×₁ k ∘ (f ∘ h) ×₁ (g ∘ h) ∘ Ξ” β‰ˆβŸ¨ refl⟩∘⟨ pullΛ‘ Γ—β‚βˆ˜Γ—β‚ ⟩