changeset 116:0e37b2cf3c73

F^T and U^T constructed
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 01 Aug 2013 09:24:53 +0900
parents 17e69b05bc5e
children d91e89766a76
files em-category.agda
diffstat 1 files changed, 41 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/em-category.agda	Thu Aug 01 09:04:45 2013 +0900
+++ b/em-category.agda	Thu Aug 01 09:24:53 2013 +0900
@@ -164,25 +164,45 @@
         }
      } where open ≈-Reasoning (A) 
 
-Lemma-EM4 : (a : Obj A ) (phi : Hom A (FObj T a) a) -> A [ A [ phi  o TMap η a ] ≈ id1 A a ]
-Lemma-EM4 = ?
+open Monad
+Lemma-EM4 : (x : Obj A ) -> A [ A [ TMap μ x  o TMap η (FObj T x) ] ≈ id1 A (FObj T x) ]
+Lemma-EM4 x = let  open ≈-Reasoning (A) in
+    begin
+       TMap μ x  o TMap η (FObj T x) 
+    ≈⟨ IsMonad.unity1 (isMonad M) ⟩
+       id1 A (FObj T x)
+    ∎
 
-Lemma-EM5 : (a : Obj A ) (phi : Hom A (FObj T a) a) -> A [ A [ phi  o TMap μ a ] ≈ A [ phi o FMap T phi ] ]
-Lemma-EM5 = ?
+Lemma-EM5 : (x : Obj A ) -> A [ A [ ( TMap μ x)  o TMap μ (FObj T x) ] ≈ A [ ( TMap μ x) o FMap T ( TMap μ x) ] ]
+Lemma-EM5 x =  let  open ≈-Reasoning (A) in
+    begin
+       ( TMap μ x)  o TMap μ (FObj T x) 
+    ≈⟨ IsMonad.assoc (isMonad M) ⟩
+       ( TMap μ x) o FMap T ( TMap μ x)
+    ∎
 
 ftobj : Obj A -> EMObj
 ftobj = \x -> record { a = FObj T x ; phi = TMap μ x; 
  isAlgebra = record {
-      identity = Lemma-EM4 (FObj T x) ( TMap μ x);
-      eval     = Lemma-EM5 (FObj T x) ( TMap μ x)
+      identity = Lemma-EM4 x;
+      eval     = Lemma-EM5 x
  } }
 
-Lemma-EM6 :  (a b : EMObj ) -> (f : Hom A (obj a) (obj b))  -> 
-      A [ A [ (φ b)  o FMap T f ]  ≈ A [ f  o (φ a) ] ]
-Lemma-EM6 = ?
+Lemma-EM6 :  (a b : Obj A ) -> (f : Hom A a b ) ->
+      A [ A [ (φ (ftobj b))  o FMap T (FMap T f) ]  ≈ A [ FMap T f  o (φ (ftobj a)) ] ]
+Lemma-EM6 a b f =  let  open ≈-Reasoning (A) in
+    begin
+       (φ (ftobj b))  o FMap T (FMap T f)
+    ≈⟨⟩
+       TMap μ b  o FMap T (FMap T f)
+    ≈⟨ sym (nat μ) ⟩
+       FMap T f  o TMap μ a
+    ≈⟨⟩
+       FMap T f  o (φ (ftobj a))
+    ∎
 
 ftmap : {a b : Obj A} -> (Hom A a b) -> EMHom (ftobj a) (ftobj b)
-ftmap {a} {b} f = record { EMap = FMap T f; homomorphism =  Lemma-EM6 (ftobj a) (ftobj b) (FMap T f) }
+ftmap {a} {b} f = record { EMap = FMap T f; homomorphism =  Lemma-EM6 a b f }
 
 F^T : Functor A Eilenberg-MooreCategory
 F^T = record {
@@ -191,22 +211,22 @@
         ; isFunctor = record {
                ≈-cong   = ≈-cong   
              ; identity = identity 
-             ; distr    = distr 
+             ; distr    = distr1 
         }
      } where 
         ≈-cong   : {a b : Obj A} {f g : Hom A a b} → A [ f ≈ g ] → (ftmap f) ≗ (ftmap g)
-        ≈-cong   = ?
+        ≈-cong   = let  open ≈-Reasoning (A) in ( fcong T )
         identity :  {a : Obj A} →  ftmap (id1 A a) ≗ EM-id {ftobj a}
-        identity = ?
-        distr    :  {a b c : Obj A} {f : Hom A a b} {g : Hom A b c} → ftmap (A [ g o f ]) ≗ ( ftmap g ∙ ftmap f )
-        distr    = ?
+        identity = IsFunctor.identity ( isFunctor T )
+        distr1    :  {a b c : Obj A} {f : Hom A a b} {g : Hom A b c} → ftmap (A [ g o f ]) ≗ ( ftmap g ∙ ftmap f )
+        distr1    =  let  open ≈-Reasoning (A) in ( distr T )
 
 --open MResolution
---
---Resolution_T : MResolution A Eilenberg-MooreCategory T U_T F_T {nat-η} {nat-ε} {nat-μ} Adj_T 
---Resolution_T = record {
---      T=UF   = Lemma11;
---      μ=UεF  = Lemma12 
---  }
+
+--Resolution^T : MResolution A Eilenberg-MooreCategory T^U_T F^T {η^t} {ε^T} {μ^T} Adj_T 
+--Resolution^T = record {
+--        T=UF   = Lemma-EM7;
+--        μ=UεF  = Lemma-EM8 
+--}
 
 -- -- end