diff options
| author | Jacques Comeaux <jacquesrcomeaux@protonmail.com> | 2026-09-03 15:25:17 -0500 |
|---|---|---|
| committer | Jacques Comeaux <jacquesrcomeaux@protonmail.com> | 2026-09-03 15:25:17 -0500 |
| commit | 42ab1c0b0fc5e7f16123b628dc65a38274d22f3d (patch) | |
| tree | c4201a3675399be8b713ac3dc6f42c843dd2db1e /Object | |
| parent | f7091746dcae0aacd0fc8c8971d6dc5a748e7bc5 (diff) | |
Add bimonoid objects
Diffstat (limited to 'Object')
| -rw-r--r-- | Object/Bimonoid.agda | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Object/Bimonoid.agda b/Object/Bimonoid.agda new file mode 100644 index 0000000..c53e122 --- /dev/null +++ b/Object/Bimonoid.agda @@ -0,0 +1,102 @@ +{-# 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.Bimonoid {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.Properties M using () renaming (monoidal-Op to Mᵒᵖ) +open import Categories.Category.Monoidal.Symmetric.Properties S using () renaming (symmetric-Op to Sᵒᵖ) +open import Categories.Category.Monoidal.Utilities M using (module Shorthands) +open import Categories.Object.Monoid using (IsMonoid) +open import Object.Monoid.Commutative using (IsCommutativeMonoid) + +open Category C +open Symmetric S + +open Interchange braided using (module swapInner) +open Shorthands using (λ⇒; λ⇐) + +open swapInner renaming (from to i⇒) + +record IsBimonoid (A : Obj) : Set (ℓ ⊔ e) where + + field + monoid : IsMonoid M A + comonoid : IsMonoid Mᵒᵖ A + + open IsMonoid monoid + using (μ; η) + renaming (assoc to μ-assoc; identityˡ to μ-η-identityˡ; identityʳ to μ-η-identityʳ) + public + + open IsMonoid comonoid + using () + renaming (μ to δ; η to ϵ; assoc to δ-assoc; identityˡ to δ-ϵ-identityˡ; identityʳ to δ-ϵ-identityʳ) + public + + field + μ-δ-compat : δ ∘ μ ≈ μ ⊗₁ μ ∘ i⇒ ∘ δ ⊗₁ δ + μ-ϵ-compat : ϵ ∘ μ ≈ λ⇒ ∘ ϵ ⊗₁ ϵ + δ-η-compat : δ ∘ η ≈ η ⊗₁ η ∘ λ⇐ + extra : ϵ ∘ η ≈ id + +record Bimonoid : Set (o ⊔ ℓ ⊔ e) where + + field + Carrier : Obj + isBimonoid : IsBimonoid Carrier + + open IsBimonoid isBimonoid public + +record IsBicommutativeBimonoid (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 + μ-η-compat : δ ∘ μ ≈ μ ⊗₁ μ ∘ i⇒ ∘ δ ⊗₁ δ + μ-ϵ-compat : ϵ ∘ μ ≈ λ⇒ ∘ ϵ ⊗₁ ϵ + δ-η-compat : δ ∘ η ≈ η ⊗₁ η ∘ λ⇐ + extra : ϵ ∘ η ≈ id + +record BicommutativeBimonoid : Set (o ⊔ ℓ ⊔ e) where + + field + Carrier : Obj + isBicommutativeBimonoid : IsBicommutativeBimonoid Carrier + + open IsBicommutativeBimonoid isBicommutativeBimonoid public + +record IsSpecialBicommutativeBimonoid (A : Obj) : Set (ℓ ⊔ e) where + + field + bimonoid : IsBicommutativeBimonoid A + + open IsBicommutativeBimonoid bimonoid public + + field + special : μ ∘ δ ≈ id + +record SpecialBicommutativeBimonoid : Set (o ⊔ ℓ ⊔ e) where + + field + Carrier : Obj + isSpecialBicommutativeBimonoid : IsSpecialBicommutativeBimonoid Carrier + + open IsSpecialBicommutativeBimonoid isSpecialBicommutativeBimonoid public |
