Skip to content

Commit 1a003b2

Browse files
authored
Wild Monads !! (#1265)
1 parent 6dc0886 commit 1a003b2

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

Cubical/WildCat/Functor.agda

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ open WildNatTrans
5454
open WildNatIso
5555
open wildIsIso
5656

57+
idWildNatTrans : {C : WildCat ℓC ℓC'} {D : WildCat ℓD ℓD'} {F : WildFunctor C D} WildNatTrans _ _ F F
58+
idWildNatTrans {D = D} .N-ob x = D .id
59+
idWildNatTrans {D = D} .N-hom f = D .⋆IdR _ ∙ sym (D .⋆IdL _)
60+
5761
module _
5862
{C : WildCat ℓC ℓC'} {D : WildCat ℓD ℓD'}
5963
(F G H : WildFunctor C D) where

Cubical/WildCat/Monad.agda

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module Cubical.WildCat.Monad where
2+
3+
open import Cubical.Foundations.Prelude
4+
open import Cubical.WildCat.Base
5+
open import Cubical.WildCat.Functor
6+
7+
private variable
8+
ℓ ℓ' : Level
9+
10+
module _ {C : WildCat ℓ ℓ'} (M : WildFunctor C C) where
11+
open WildCat C
12+
open WildFunctor
13+
open WildNatTrans
14+
15+
IsPointed : Type (ℓ-max ℓ ℓ')
16+
IsPointed = WildNatTrans C C (idWildFunctor C) M
17+
18+
record IsMonad : Type (ℓ-max ℓ ℓ') where
19+
field
20+
η : IsPointed
21+
μ : WildNatTrans _ _ (comp-WildFunctor M M) M
22+
idl-μ : {X : ob} μ .N-ob X ∘ η .N-ob (M .F-ob X) ≡ id
23+
idr-μ : {X : ob} μ .N-ob X ∘ M .F-hom (η .N-ob X) ≡ id
24+
assoc-μ : {X : ob} μ .N-ob X ∘ M .F-hom (μ .N-ob X) ≡ μ .N-ob X ∘ μ .N-ob (M .F-ob X)
25+
26+
bind : {X Y : ob} Hom[ X , M .F-ob Y ] Hom[ M .F-ob X , M .F-ob Y ]
27+
bind f = μ .N-ob _ ∘ M .F-hom f
28+
29+
WildMonad : WildCat ℓ ℓ' Type (ℓ-max ℓ ℓ')
30+
WildMonad C = Σ[ M ∈ WildFunctor C C ] IsMonad M

0 commit comments

Comments
 (0)