From 1528b2a49c0f006bdeff25a46f8f7ab6c23c73fd Mon Sep 17 00:00:00 2001 From: Jacques Comeaux Date: Sun, 19 Jul 2026 12:31:03 -0700 Subject: Simplify wiring diagrams using semiadditive dagger --- Category/BinaryBiproducts.agda | 19 +++++++++++++++++++ Category/Semiadditive.agda | 23 +++++++++-------------- 2 files changed, 28 insertions(+), 14 deletions(-) (limited to 'Category') 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Λ‘ Γ—β‚βˆ˜Γ—β‚ ⟩ -- cgit v1.2.3