changeset 226:27f2c77c963f

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 05 Sep 2013 20:10:51 +0900
parents 1a9f20917fbd
children 591efd381c82
files equalizer.agda
diffstat 1 files changed, 38 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/equalizer.agda	Thu Sep 05 14:56:35 2013 +0900
+++ b/equalizer.agda	Thu Sep 05 20:10:51 2013 +0900
@@ -58,6 +58,9 @@
 f1=g1 : { a b c : Obj A } {f g : Hom A a b } → (eq : A [ f ≈ g ] ) → (h : Hom A c a) →  A [ A [ f o h ] ≈ A [ g o h ]  ]
 f1=g1 eq h = let open ≈-Reasoning (A) in (resp refl-hom eq )
 
+f1=f1 : { a b : Obj A } (f : Hom A a b ) →  A [ A [ f o (id1 A a)  ] ≈ A [ f o (id1 A a)  ]  ]
+f1=f1  f = let open ≈-Reasoning (A) in refl-hom 
+
 f1=gh : { a b c d : Obj A } {f g : Hom A a b } → { e : Hom A c a } → { h : Hom A d c } →
        (eq : A [ A [ f  o e ] ≈ A [ g  o e ] ] ) → A [ A [ f o A [ e o h ] ] ≈ A [ g o A [ e  o h ]  ] ]
 f1=gh {a} {b} {c} {d} {f} {g} {e} {h} eq = let open ≈-Reasoning (A) in 
@@ -383,23 +386,39 @@
 -- If we have two equalizers on c and c', there are isomorphic pair h, h'
 --
 --     h : c → c'  h' : c' → c
---
+--             h h' = 1 and h' h = 1
 --     not yet done
 
 
-iso-rev  : { a b c : Obj A } {f g : Hom A a b } → (eq : A [ f ≈ g ] ) → ( eqa : Equalizer A {c} f g) →  Hom A a c
-iso-rev {a} {b} {c} {f} {g} eq eqa = k  eqa (id1 A a) (f1=g1 eq (id1 A a))
+c-iso-l : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' :  Equalizer A {c'} f g ) 
+      → (eff' : Equalizer A {c'} f f ) → (eff : Equalizer A {c} f f )
+      → Hom A c c'  
+c-iso-l  eqa eqa' eff' eff  = let open ≈-Reasoning (A) in k eff' (e eqa) refl-hom
+
+c-iso-r : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' :  Equalizer A {c'} f g ) 
+      → (eff' : Equalizer A {c'} f f ) → (eff : Equalizer A {c} f f )
+      → Hom A c' c   
+c-iso-r  eqa eqa' eff' eff = let open ≈-Reasoning (A) in k eff (e eqa') refl-hom
 
-equalizer-iso-pair  : { a b c : Obj A } {f g : Hom A a b } → {eq : A [ f ≈ g ] } → ( eqa : Equalizer A {c} f g) → 
-         A [ A [ e eqa o iso-rev eq eqa  ]  ≈ id1 A a ] 
-equalizer-iso-pair  {a} {b} {c} {f} {g} {eq} eqa  = ek=h eqa
+c-iso-1 : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' :  Equalizer A {c'} f g ) 
+      → (eff' : Equalizer A {c'} f f ) → (eff : Equalizer A {c} f f )
+      →  A [ A [ k eqa' (A [ e eqa' o k eff' (id1 A a ) (f1=f1 f) ] ) (f1=gh ( fe=ge eqa' ) ) o  e eff' ]  ≈ id1 A c' ]
+c-iso-1 = {!!}
+
+c-iso : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' :  Equalizer A {c'} f g ) 
+      → (eff' : Equalizer A {c'} f f ) → (eff : Equalizer A {c} f f )
+      →  A [ A [ c-iso-l eqa eqa' eff' eff  o c-iso-r eqa eqa' eff' eff ]  ≈ id1 A c' ]
+c-iso {c} {c'} {a} {b} {f} {g} eqa eqa' eff' eff = let open ≈-Reasoning (A) in begin
+             c-iso-l eqa eqa' eff' eff  o c-iso-r eqa eqa' eff' eff 
+             ≈⟨⟩
+                k eff' (e eqa) refl-hom  o k eff (e eqa') refl-hom
+             ≈⟨  {!!} ⟩
+                id1 A c'
+             ∎
+
 
 -- Equalizer is unique up to iso
 
-equalizer-iso : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' :  Equalizer A {c'} f g ) 
-      → Hom A c c'   --- != id1 A c
-equalizer-iso  {c} eqa eqa' = k eqa' (e eqa) (fe=ge eqa)
-
 --
 --        
 --           e eqa f g        f
@@ -449,9 +468,9 @@
       γ = λ {a} {b} {c} {d} f g h → k (eqa f g ) {d} ( A [ h  o (e ( eqa (A [ f  o  h ] ) (A [ g o h ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) ;  -- Hom A c d
       δ =  λ {a} f → k (eqa f f) (id1 A a)  (lemma-equ2 f); -- Hom A a c
       b1 = fe=ge (eqa f g) ;
-      b2 = lemma-equ5 ;
-      b3 = lemma-equ3 ;
-      b4 = lemma-equ6 
+      b2 = lemma-b2 ;
+      b3 = lemma-b3 ;
+      b4 = lemma-b4 
  } where
      --
      --           e eqa f g        f
@@ -467,8 +486,8 @@
 
      lemma-equ2 : {a b : Obj A} (f : Hom A a b)  → A [ A [ f o id1 A a ]  ≈ A [ f o id1 A a ] ]
      lemma-equ2 f =   let open ≈-Reasoning (A) in refl-hom
-     lemma-equ3 : A [ A [ e (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f) ] ≈ id1 A a ]
-     lemma-equ3 = let open ≈-Reasoning (A) in
+     lemma-b3 : A [ A [ e (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f) ] ≈ id1 A a ]
+     lemma-b3 = let open ≈-Reasoning (A) in
              begin  
                   e (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f)
              ≈⟨ ek=h (eqa f f )  ⟩
@@ -486,21 +505,21 @@
              ≈↑⟨ assoc ⟩
                    g o ( h o e (eqa (f o h) ( g o h )))

-     lemma-equ5 :  {d : Obj A} {h : Hom A d a} → A [ 
+     lemma-b2 :  {d : Obj A} {h : Hom A d a} → A [ 
                       A [ e (eqa f g) o k (eqa f g) (A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ]) (lemma-equ4 {a} {b} {c} f g h) ]
                     ≈ A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ] ]
-     lemma-equ5 {d} {h} = let open ≈-Reasoning (A) in
+     lemma-b2 {d} {h} = let open ≈-Reasoning (A) in
              begin
                     e (eqa f g) o k (eqa f g) (h o e (eqa (f o h) (g o h))) (lemma-equ4 {a} {b} {c} f g h) 
              ≈⟨ ek=h (eqa f g)  ⟩
                     h o e (eqa (f o h ) ( g o h ))

-     lemma-equ6 : {d : Obj A} {j : Hom A d c} → A [ 
+     lemma-b4 : {d : Obj A} {j : Hom A d c} → A [ 
           A [ k (eqa f g) (A [ A [ e (eqa f g) o j ] o e (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ g o A [ e (eqa f g) o j ] ])) ])
                      (lemma-equ4 {a} {b} {c} f g (A [ e (eqa f g) o j ])) o 
               k (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ f o A [ e (eqa f g) o j ] ])) (id1 A d) (lemma-equ2 (A [ f o A [ e (eqa f g) o j ] ])) ]
               ≈ j ]
-     lemma-equ6 {d} {j} = let open ≈-Reasoning (A) in 
+     lemma-b4 {d} {j} = let open ≈-Reasoning (A) in 
              begin
                      ( k (eqa f g) (( ( e (eqa f g) o j ) o e (eqa (( f o ( e (eqa f g) o j ) )) (( g o ( e (eqa f g) o j ) ))) ))
                             (lemma-equ4 {a} {b} {c} f g (( e (eqa f g) o j ))) o