annotate monoid-monad.agda @ 131:eb7ca6b9d327

trying..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 11 Aug 2013 15:52:09 +0900
parents 5f331dfc000b
children 683d4e590762
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Category -- https://github.com/konn/category-agda
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 129
diff changeset
2 open import Category.Monoid
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 129
diff changeset
3 open import Algebra
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import Level
131
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
5 module monoid-monad {c₁ c₂ ℓ : Level} { M : Monoid c₁ ℓ} {A : Category c₁ c₂ ℓ } where
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 129
diff changeset
6
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import HomReasoning
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 open import cat-utility
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 open import Category.Cat
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 open import Category.Sets
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 -- T : A -> (M x A)
131
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
13 -- a -> m x a
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
14 -- m x a -> m' x (m x a)
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
131
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
16 data T1 {c₁ c₂ ℓ : Level} (M : Monoid c₁ ℓ ) ( A : Category c₁ c₂ ℓ ) : Set ( suc ( c₁ ⊔ c₂ ⊔ ℓ) ) where
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
17 T1a : Obj A -> T1 M A
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
18 T1t : Obj A -> T1 M A -> T1 M A
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
19
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
20 T1HomMap : {c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } {M : Monoid c₁ ℓ } (a : T1 {c₁} {c₂} {ℓ} M A ) (b : T1 {c₁} {c₂} {ℓ} M A) -> Set c₂
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
21 T1HomMap {c₁} {c₂} {ℓ } { A } (T1a a1 ) (T1a a2 ) = Hom A a1 a2
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
22 T1HomMap {c₁} {c₂} {ℓ } { A } (T1t a1 t1 ) (T1a a2 ) = Hom A a1 a2
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
23 T1HomMap {c₁} {c₂} {ℓ } { A } (T1a a1 ) (T1t a2 t2 ) = Hom A a1 a2
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
24 T1HomMap {c₁} {c₂} {ℓ } { A } (T1t a1 t1 ) (T1t a2 t2 ) = Hom A a1 a2
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
25
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
26 record T1Hom1 {c₁ c₂ ℓ : Level} { M : Monoid c₁ ℓ} { A : Category c₁ c₂ ℓ }
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
27 (a : T1 M A ) (b : T1 M A) : Set ( c₁ ⊔ c₂ ⊔ ℓ ) where
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
28 field
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
29 T1Map : T1HomMap a b
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
30
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
31 open T1Hom1
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
32 T1Hom = \(a b : T1 M A) -> T1Hom1 {c₁} {c₂} {ℓ} {M} {A} a b
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
33
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
34 _*_ : {c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } {M : Monoid c₁ ℓ } { a b c : T1 {c₁} {c₂} {ℓ } M A } -> T1Hom1 {c₁} {c₂} {ℓ} b c -> T1Hom1 {c₁} {c₂} {ℓ} a b -> T1Hom1 {c₁} {c₂} {ℓ} a c
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
35 _*_ {c₁} {c₂} {ℓ } {A} {M} {a} {b} {c} g f = record { T1Map = A [ T1Map g o T1Map f ] }
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
131
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
38
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
39
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
40
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
131
eb7ca6b9d327 trying..
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
42
129
fdf89038556a monoid monad
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 129
diff changeset
44