changeset 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
files cat-utility.agda monoid-monad.agda
diffstat 2 files changed, 27 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/cat-utility.agda	Thu Aug 08 22:05:41 2013 +0900
+++ b/cat-utility.agda	Sun Aug 11 15:52:09 2013 +0900
@@ -70,10 +70,6 @@
 
         record Monad {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (T : Functor A A) (η : NTrans A A identityFunctor T) (μ : NTrans A A (T ○ T) T)
                : Set (suc (c₁ ⊔ c₂ ⊔ ℓ )) where
-          eta : NTrans A A identityFunctor T
-          eta = η
-          mu : NTrans A A (T ○ T) T
-          mu = μ
           field
             isMonad : IsMonad A T η μ
              -- g ○ f = μ(c) T(g) f
--- a/monoid-monad.agda	Thu Aug 08 22:05:41 2013 +0900
+++ b/monoid-monad.agda	Sun Aug 11 15:52:09 2013 +0900
@@ -2,60 +2,43 @@
 open import Category.Monoid
 open import Algebra
 open import Level
-module monoid-monad {c c₁ c₂ ℓ : Level} { MS : Set ℓ } { Mono : Monoid c ℓ} {A : Category c₁ c₂ ℓ }  where
+module monoid-monad {c₁ c₂ ℓ : Level} { M : Monoid c₁ ℓ} {A : Category c₁ c₂ ℓ }  where
 
-open import Category.HomReasoning                                                                                                               
 open import HomReasoning
 open import cat-utility
 open import Category.Cat
 open import Category.Sets
-open import Data.Product
-open import Relation.Binary.Core
-open import Relation.Binary
-
-
-MC :  Category (suc zero) c (suc (ℓ ⊔ c))
-MC = MONOID Mono
 
 -- T : A -> (M x A)
+--    a -> m x a
+--    m x a -> m' x (m x a)
 
-T : ∀{ℓ′} -> Functor (Sets {ℓ′}) (Sets {ℓ ⊔  ℓ′} )
-T = record {
-        FObj = \a -> MS × a
-        ; FMap = \f -> map ( \x -> x ) f
-        ; isFunctor = record {
-             identity = IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory Sets ))
-             ; distr = (IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory Sets )))
-             ; ≈-cong = cong1
-        } 
-    } where
-        cong1 : {ℓ′ : Level} -> {a b : Set ℓ′} { f g : Hom (Sets {ℓ′}) a b} -> Sets [ f ≈ g ] → Sets [ map (λ x → x) f ≈ map (λ x → x) g ]
-        cong1 refl = refl
+data T1 {c₁ c₂ ℓ : Level}  (M :  Monoid c₁ ℓ ) ( A : Category c₁ c₂ ℓ ) : Set ( suc ( c₁ ⊔ c₂ ⊔ ℓ) ) where
+   T1a :  Obj A -> T1 M A
+   T1t :  Obj A -> T1 M A -> T1 M A
+
+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₂ 
+T1HomMap {c₁} {c₂} {ℓ }  { A } (T1a a1 ) (T1a a2 ) = Hom A a1 a2
+T1HomMap {c₁} {c₂} {ℓ }  { A } (T1t a1 t1 ) (T1a a2 ) = Hom A a1 a2
+T1HomMap {c₁} {c₂} {ℓ }  { A } (T1a a1 ) (T1t a2 t2 ) = Hom A a1 a2
+T1HomMap {c₁} {c₂} {ℓ }  { A } (T1t a1 t1 ) (T1t a2 t2 ) = Hom A a1 a2
+
+record T1Hom1 {c₁ c₂ ℓ : Level}  { M : Monoid  c₁  ℓ}  { A : Category c₁ c₂ ℓ }  
+                 (a : T1 M A ) (b : T1 M A) : Set ( c₁ ⊔ c₂ ⊔ ℓ ) where
+   field
+       T1Map  : T1HomMap a b
+
+open T1Hom1
+T1Hom = \(a b : T1 M A) -> T1Hom1 {c₁} {c₂} {ℓ} {M} {A} a b
+
+_*_ :  {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
+_*_ {c₁} {c₂} {ℓ } {A} {M} {a} {b} {c} g f  =  record { T1Map = A [ T1Map g  o T1Map f ] } 
 
 
--- Forgetful Functor
+
+
+
 
-open Functor 
-F : Functor MC Sets
-F  = record {
-        FObj = \a -> { s : Obj Sets } -> s 
-        ; FMap = \f -> ? -- {a : Obj Sets} { g : Hom Sets (FObj F *)  (FObj F ((Mor MC f) *)) } -> g
-        ; isFunctor = record {
-             identity = IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory Sets ))
-             ; distr = (IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory Sets )))
---             ; ≈-cong = (IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory Sets )))
-        } 
-    } 
+
 
--- Gerator
 
-G : Functor Sets MC
-G  = record {
-        FObj = \a -> * 
-        ; FMap = \f -> { g : Hom MC * * } -> Mor MC 
-        ; isFunctor = record {
-             identity = IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory MC ))
-             ; distr = (IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory MC )))
-             ; ≈-cong = (IsEquivalence.refl (IsCategory.isEquivalence  ( Category.isCategory MC )))
-        } 
-    }