aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-09-03 19:22:21 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2026-09-03 19:22:21 -0500
commit4e6acbf8b8084bea12327683aceb300a9b64c367 (patch)
tree18ce77db537b4fdd7ef5be66b09a84ea22195f10
parent42ab1c0b0fc5e7f16123b628dc65a38274d22f3d (diff)
Add Frobenius monoids and hypergraph categoriesmain
-rw-r--r--Category/Monoidal/Hypergraph.agda33
-rw-r--r--Category/Monoidal/Hypergraph/Bundle.agda20
-rw-r--r--Object/Monoid/Frobenius.agda40
3 files changed, 93 insertions, 0 deletions
diff --git a/Category/Monoidal/Hypergraph.agda b/Category/Monoidal/Hypergraph.agda
new file mode 100644
index 0000000..bfc4c26
--- /dev/null
+++ b/Category/Monoidal/Hypergraph.agda
@@ -0,0 +1,33 @@
+{-# OPTIONS --without-K --safe #-}
+
+open import Categories.Category using (Category)
+open import Categories.Category.Monoidal using (Monoidal)
+open import Categories.Category.Monoidal.Symmetric using (Symmetric)
+open import Level using (Level; _⊔_)
+
+module Category.Monoidal.Hypergraph {o ℓ e : Level} {C : Category o ℓ e} {M : Monoidal C} (S : Symmetric M) where
+
+import Categories.Category.Monoidal.Interchange.Braided as Interchange
+
+open import Categories.Category.Monoidal.Utilities M using (module Shorthands)
+open import Object.Monoid.Frobenius S using (IsSpecialCommutativeFrobeniusMonoid)
+
+open Category C
+open Symmetric S
+
+open Interchange braided using (module swapInner)
+open Shorthands using (λ⇒; λ⇐)
+open swapInner renaming (from to i⇒)
+
+record Hypergraph : Set (o ⊔ ℓ ⊔ e) where
+
+ field
+ scfm : {A : Obj} → IsSpecialCommutativeFrobeniusMonoid A
+
+ open module ISCFM {A} = IsSpecialCommutativeFrobeniusMonoid (scfm {A}) using (μ; η; δ; ϵ)
+
+ field
+ δ-compat : {X Y : Obj} → δ {X ⊗₀ Y} ≈ i⇒ ∘ δ ⊗₁ δ
+ μ-compat : {X Y : Obj} → μ {X ⊗₀ Y} ≈ μ ⊗₁ μ ∘ i⇒
+ η-compat : {X Y : Obj} → η {X ⊗₀ Y} ≈ η ⊗₁ η ∘ λ⇐
+ ϵ-compat : {X Y : Obj} → ϵ {X ⊗₀ Y} ≈ λ⇒ ∘ ϵ ⊗₁ ϵ
diff --git a/Category/Monoidal/Hypergraph/Bundle.agda b/Category/Monoidal/Hypergraph/Bundle.agda
new file mode 100644
index 0000000..3b18613
--- /dev/null
+++ b/Category/Monoidal/Hypergraph/Bundle.agda
@@ -0,0 +1,20 @@
+{-# OPTIONS --without-K --safe #-}
+
+module Category.Monoidal.Hypergraph.Bundle where
+
+open import Categories.Category using (Category)
+open import Categories.Category.Monoidal using (Monoidal)
+open import Categories.Category.Monoidal.Symmetric using (Symmetric)
+open import Category.Monoidal.Hypergraph using (Hypergraph)
+open import Level using (Level; _⊔_; suc)
+
+record HypergraphCategory {o ℓ e : Level} : Set (suc (o ⊔ ℓ ⊔ e)) where
+
+ field
+ U : Category o ℓ e
+ monoidal : Monoidal U
+ symmetric : Symmetric monoidal
+ hypergraph : Hypergraph symmetric
+
+ open Symmetric symmetric public
+ open Hypergraph hypergraph public
diff --git a/Object/Monoid/Frobenius.agda b/Object/Monoid/Frobenius.agda
new file mode 100644
index 0000000..672e65e
--- /dev/null
+++ b/Object/Monoid/Frobenius.agda
@@ -0,0 +1,40 @@
+{-# OPTIONS --without-K --safe #-}
+
+open import Categories.Category using (Category)
+open import Categories.Category.Monoidal using (Monoidal)
+open import Categories.Category.Monoidal.Symmetric using (Symmetric)
+open import Level using (Level; _⊔_)
+
+module Object.Monoid.Frobenius {o ℓ e : Level} {C : Category o ℓ e} {M : Monoidal C} (S : Symmetric M) where
+
+open import Categories.Category.Monoidal.Symmetric.Properties S using () renaming (symmetric-Op to Sᵒᵖ)
+open import Object.Monoid.Commutative using (IsCommutativeMonoid)
+
+open Category C
+
+record IsSpecialCommutativeFrobeniusMonoid (A : Obj) : Set (ℓ ⊔ e) where
+
+ field
+ commutativeMonoid : IsCommutativeMonoid S A
+ cocommutativeComonoid : IsCommutativeMonoid Sᵒᵖ A
+
+ open IsCommutativeMonoid commutativeMonoid
+ using (μ; η; commutative)
+ renaming (assoc to μ-assoc; identityˡ to μ-η-identityˡ; identityʳ to μ-η-identityʳ)
+ public
+
+ open IsCommutativeMonoid cocommutativeComonoid
+ using ()
+ renaming (μ to δ; η to ϵ; assoc to δ-assoc; identityˡ to δ-ϵ-identityˡ; identityʳ to δ-ϵ-identityʳ; commutative to cocommutative)
+ public
+
+ field
+ special : μ ∘ δ ≈ id
+
+record SpecialCommutativeFrobeniusMonoid : Set (o ⊔ ℓ ⊔ e) where
+
+ field
+ Carrier : Obj
+ isSpecialCommutativeFrobeniusMonoid : IsSpecialCommutativeFrobeniusMonoid Carrier
+
+ open IsSpecialCommutativeFrobeniusMonoid isSpecialCommutativeFrobeniusMonoid public