1
0
forked from GitHub/gf-core

incomplete code for adjoints and monads

This commit is contained in:
krasimir
2010-03-15 17:31:15 +00:00
parent 381a7a2f07
commit d91999dec0
3 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
abstract Adjoints = NaturalTransform ** {
cat Adjoints ({c1,c2} : Category) (Functor c1 c2) (Functor c2 c1) ;
data adjoints : ({c1,c2} : Category)
-> (f : Functor c1 c2)
-> (g : Functor c2 c1)
-> NT (idF c1) (compF g f)
-> Adjoints f g ;
}

View File

@@ -5,5 +5,7 @@ abstract CategoryTheory
, Functor
, NaturalTransform
, Equalizer
, Adjoints
, Monad
** {
}

View File

@@ -0,0 +1,30 @@
abstract Monad = Adjoints ** {
cat Monad ({c} : Category) (m : Functor c c) ;
data monad : ({c} : Category)
-> (m : Functor c c)
-> NT (compF m m) m
-> NT (idF c) m
-> Monad m ;
fun adjoints2monad : ({c,d} : Category)
-> (f : Functor c d)
-> (g : Functor d c)
-> Adjoints f g
-> Monad (compF g f) ;
-- def adjoints2monad = ...
{-
fun kleisliCat : ({c} : Category)
-> ({m} : Functor c c)
-> Monad m
-> Category ;
fun monad2adjoints : ({c} : Category)
-> ({m} : Functor c c)
-> Monad m
-> Adjoints {c} {kleisliCat m} f g
-}
}