aboutsummaryrefslogtreecommitdiff
path: root/Category/Monoidal/Hypergraph.agda
blob: bfc4c261ee20c0f21e113f4697c4dbd5a1baf39b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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}  λ  ϵ ⊗₁ ϵ