changeset 106:4dec85377dbc

yellow...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 31 Jul 2013 18:34:45 +0900
parents b881dbc47684
children da14b7f03ff8
files em-category.agda
diffstat 1 files changed, 23 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/em-category.agda	Wed Jul 31 17:34:17 2013 +0900
+++ b/em-category.agda	Wed Jul 31 18:34:45 2013 +0900
@@ -74,8 +74,8 @@
        isEMHom : IsEMHom a b α
 open Eilenberg-Moore-Hom
 
-EMHom = \(a b : EMObj) -> {α : Hom A (emobj a) (emobj b) } -> 
-         Eilenberg-Moore-Hom {emobj a} {emobj b} {emphi a} {emphi b} a b {α}
+EMHom = \(a : EMObj) (b : EMObj) -> {α : Hom A (emobj a) (emobj b) } -> 
+         Eilenberg-Moore-Hom {emobj a} {emobj b} {emphi {emobj a} a } {emphi b} a b {α}
 
 Lemma-EM1 : {x : Obj A}
               {φ : Hom A (FObj T x) x}
@@ -101,18 +101,29 @@
 
 open import Relation.Binary.Core
 
-Lemma-EM2 : (a b c : EMObj) 
-              (φ   : Hom A  (FObj T (emobj a)) (emobj a))
-              (φ'  : Hom A  (FObj T (emobj b)) (emobj b))
-              (φ'' : Hom A  (FObj T (emobj c)) (emobj c))
-              (g : EMHom b c)
-              (f : EMHom a b) -> A [ A [ φ''  o FMap T (A [ (EMap g)  o  (EMap f) ] ) ]  
+Lemma-EM2 : {x y z : Obj A}
+            {φ   : Hom A  (FObj T x) x}
+            {φ'  : Hom A  (FObj T y) y}
+            {φ'' : Hom A  (FObj T z) z}
+            (a : EMObj {x} {φ}   ) 
+            (b : EMObj {y} {φ'}  ) 
+            (c : EMObj {z} {φ''} ) 
+            (g : EMHom b c)
+            (f : EMHom a b) -> A [ A [ φ''  o FMap T (A [ (EMap g)  o  (EMap f) ] ) ]  
                       ≈ A [ (A [ (EMap g)  o  (EMap f) ])  o φ ] ]
-Lemma-EM2 (emObj AisAlgebra ) _ (emObj CisAlgebra ) φ φ' φ'' g f = let 
+Lemma-EM2 {_} {_} {_} {φ} {φ'} {φ''} (emObj _) (emObj _) (emObj _) g f = let 
       open ≈-Reasoning (A) in
    begin
-        φ''  o FMap T (A [ (EMap g)  o  (EMap f) ] )
-   ≈⟨ {!!} ⟩
+        φ''  o FMap T ((EMap g)  o  (EMap f))
+   ≈⟨ cdr (distr T) ⟩
+        φ''  o ( FMap T (EMap g)  o  FMap T (EMap f) )
+   ≈⟨ assoc ⟩
+        ( φ''  o FMap T (EMap g))  o  FMap T (EMap f) 
+   ≈⟨ car (IsEMHom.homomorphism (isEMHom g)) ⟩
+        ( EMap g o φ') o  FMap T (EMap f) 
+   ≈⟨ sym assoc ⟩
+        EMap g  o (φ' o  FMap T (EMap f) )
+   ≈⟨ cdr (IsEMHom.homomorphism (isEMHom f)) ⟩
         ( (EMap g)  o  (EMap f) )  o φ

 _≗_ : { a : EMObj } { b : EMObj } (f g  : EMHom a b ) -> Set ℓ 
@@ -121,7 +132,7 @@
 _∙_ : { a b c : EMObj } → 
                       ( EMHom b c) → (EMHom a b) → EMHom a c 
 _∙_ {a} {b} {c} g f = record { EMap = A [ (EMap g)  o  (EMap f) ] ; isEMHom = 
-            record { homomorphism = Lemma-EM2 a b c ( emphi a) (emphi b ) (emphi c) g f } }
+            record { homomorphism = Lemma-EM2 a b c g f } }
 
 isEilenberg-MooreCategory : IsCategory EMObj EMHom _≗_ _∙_ EM-id 
 isEilenberg-MooreCategory  = record  { isEquivalence =  isEquivalence