# HG changeset patch # User Shinji KONO # Date 1512402421 -32400 # Node ID dfeb296b36d32509daed325540bec3b9fde7be98 # Parent e3a39aa763689df9d65108cd619c3251cf869d7a assuming C = kleisli diff -r e3a39aa76368 -r dfeb296b36d3 monad→monoidal.agda --- a/monad→monoidal.agda Tue Dec 05 00:34:37 2017 +0900 +++ b/monad→monoidal.agda Tue Dec 05 00:47:01 2017 +0900 @@ -16,8 +16,9 @@ open import Category.Sets Monad→MonoidalFunctor : {c₁ c₂ ℓ : Level} (C : Category c₁ c₂ ℓ) ( m : Monad C ) ( monoidal : Monoidal C ) - → MonoidalFunctor monoidal monoidal -- should be monoidal to kleisli-monoidal -Monad→MonoidalFunctor C M Mono = record { + → ( ε : (x : Obj C ) → Hom C ( FObj ( Monad.T m ) x ) x ) -- assuming C = kleisli + → MonoidalFunctor monoidal monoidal +Monad→MonoidalFunctor C M Mono ε = record { MF = Monad.T M ; ψ = NTrans.TMap (Monad.η M ) ( Monoidal.m-i Mono ) ; isMonodailFunctor = record { @@ -38,12 +39,8 @@ _□_ : {a b c d : Obj C } ( f : Hom C a c ) ( g : Hom C b d ) → Hom C ( a ⊗ b ) ( c ⊗ d ) _□_ f g = FMap (Monoidal.m-bi Mono) ( f , g ) -- ( T x , T y ) → T ( x , y ) - hoge : (x : Obj C ) → Hom C ( FObj T x ) x - hoge x = {!!} φab : (a : Obj (C × C)) → Hom C (FObj (Functor● C C Mono (Monad.T M)) a) (FObj (Functor⊗ C C Mono (Monad.T M)) a) - φab (x , y) = C [ FMap T ( hoge x □ hoge y) o η ( FObj T x ⊗ FObj T y) ] - -- μ - -- T (( x , y) ) <- T ( T (x ,y ) ) <- T ( T (x ,y ), T (1 , 1 ) ) <- ( T (x, 1 ) , T (1, y ) ) + φab (x , y) = C [ FMap T ( ε x □ ε y) o η ( FObj T x ⊗ FObj T y) ] import Relation.Binary.PropositionalEquality