changeset 366:e07b7578d2e7

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 05 Mar 2016 14:52:49 +0900
parents 41ec06dd4b21
children e9e14eec7391
files limit-to.agda
diffstat 1 files changed, 31 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/limit-to.agda	Sat Mar 05 13:20:36 2016 +0900
+++ b/limit-to.agda	Sat Mar 05 14:52:49 2016 +0900
@@ -15,8 +15,8 @@
 ---          f
 ---       ------>
 ---     0         1
----       <------
----          frev
+---       ------>
+---          g
 ---          
 ---          
 ---          
@@ -51,35 +51,50 @@
          hom← : TwoObject  -> Hom Two ( obj← t0 ) ( obj← t1)
          hom-iso : {a :  Hom Two ( obj← t0 ) ( obj← t1)} -> hom← ( hom→ a) ≡ a
          hom-rev : {a : TwoObject } -> hom→ ( hom← a) ≡ a
+         hom-conv :  (x y : Obj Two) -> Hom Two x y -> Hom Two (obj← t0) (obj← t1)
 
 open TwoCat
 
-record TwoFunctor  {ℓ c₁ c₂ : Level  } (I A : Category  c₁ c₂ ℓ) (two : TwoCat I) ( Γ : Functor I A ) ( a b : Obj A ) 
-           ( f g : Hom A  a b )
-                          : Set  (c₂ ⊔ c₁ ⊔ ℓ)  where
-    field
-          Γa :  FObj Γ (obj← two t0)   ≡ a 
-          Γb :  FObj Γ (obj← two t1)   ≡ b 
-          Γmap :  Hom A a b  -> Hom A (FObj Γ (obj← two t0)) (FObj Γ (obj← two t1))
-          Γmap-rev :  Hom A (FObj Γ (obj← two t0)) (FObj Γ (obj← two t1)) -> Hom A a b  
-          Γf :  A [ FMap Γ (hom← two t0)   ≈ Γmap f ]
-          Γg :  A [ FMap Γ (hom← two t1)   ≈ Γmap g ]
+indexFunctor :  {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (Two : Category c₁ c₂ ℓ) (two : TwoCat Two ) -> 
+        ( a b : Obj A ) ( f g : Hom A a b ) ( f-rev : Hom A b a ) 
+        -> Functor Two A
+indexFunctor A Two two a b f g f-rev = record {
+         FObj = λ a → fobj a
+       ; FMap = λ f → fmap f
+       ; isFunctor = record {
+             identity = {!!} 
+             ; distr = {!!}
+             ; ≈-cong = {!!}
+       }
+      } where
+          fobj : Obj Two -> Obj A
+          fobj x with  obj→ two x
+          ... | t0 = a
+          ... | t1 = b
+          fmap' :  (x y : Obj Two) -> TwoObject -> Hom A a b
+          fmap' _ _ t0 = f
+          fmap' _ _ t1 = g
+          fmap :  {x y : Obj Two } -> Hom Two x y -> Hom A (fobj x) (fobj y)
+          fmap {x} {y} f' with obj→ two x | obj→ two y 
+          ... | t0 | t0 = id1 A a
+          ... | t1 | t0 = f-rev
+          ... | t1 | t1 = id1 A b
+          ... | t0 | t1  = fmap' x y (hom→ two (hom-conv two x y f'))
 
-open TwoFunctor
 open Limit
 
 lim-to-equ : {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) 
       (Two : Category c₁ c₂ ℓ) (two : TwoCat Two ) 
       (lim : (I : Category c₁ c₂ ℓ) ( Γ : Functor I A ) → { a0 : Obj A } { u : NTrans I A ( K A I a0 ) Γ } → Limit A I Γ a0 u ) -- completeness
-        →  {a b c : Obj A}  (f g : Hom A  a b )
-        → (  Γ : Functor Two A ) (  Γ-two : TwoFunctor Two A two  Γ a b f g)
+        →  {a b c : Obj A}  (f-rev : Hom A b a ) (f g : Hom A  a b )
         → (e : Hom A c a ) → (fe=ge : A [ A [ f o e ] ≈ A [ g o e ] ] ) → Equalizer A e f g
-lim-to-equ {c₁} A Two two lim {a} {b} {c}  f g Γ Γ-two e fe=ge = record {
+lim-to-equ {c₁} A Two two lim {a} {b} {c} f-rev f g e fe=ge = record {
         fe=ge =  fe=ge
         ; k = λ {d} h fh=gh → k {d} h fh=gh
         ; ek=h = λ {d} {h} {fh=gh} → {!!}
         ; uniqueness = λ {d} {h} {fh=gh} {k'} → {!!}
      } where
+         Γ = indexFunctor A Two two a b f g f-rev
          nmap :  (x : Obj Two) ( d : Obj A ) -> Hom A (FObj (K A Two d) x) (FObj Γ x)
          nmap x d with (obj→  two x)
          ... | t0 = ?