changeset 396:45ecb7b6c396

non nil dead end...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 16 Mar 2016 13:02:51 +0900
parents 2821b92e0dc9
children dd3fa0680897
files limit-to.agda
diffstat 1 files changed, 66 insertions(+), 70 deletions(-) [+]
line wrap: on
line diff
--- a/limit-to.agda	Tue Mar 15 18:18:06 2016 +0900
+++ b/limit-to.agda	Wed Mar 16 13:02:51 2016 +0900
@@ -29,7 +29,6 @@
    id-t0 : Arrow  
    arrow-f :  Arrow
    arrow-g :  Arrow
-   nil :  Arrow
 
 record RawHom {c₁ ℓ : Level}  (a : TwoObject {c₁}  ) (b : TwoObject {c₁}  ) : Set  (c₁  ⊔ ℓ) where
    field
@@ -55,7 +54,7 @@
 twocomp :  {ℓ : Level } -> Arrow {ℓ } -> Arrow {ℓ } -> Arrow {ℓ } 
 twocomp id-t0  f  = f
 twocomp f id-t0 = f
-twocomp _ _ = nil
+twocomp _ _ = arrow-f
 
 twocmp-associative :  {ℓ : Level } -> ( f : Arrow {ℓ } ) -> ( g : Arrow {ℓ } ) -> ( h : Arrow {ℓ } ) →  twocomp f  (twocomp g  h)  ≡  twocomp (twocomp f  g)  h 
 twocmp-associative id-t0 _ _ = refl
@@ -63,41 +62,16 @@
 twocmp-associative arrow-f arrow-f id-t0  = refl
 twocmp-associative arrow-f arrow-f arrow-f  = refl
 twocmp-associative arrow-f arrow-f arrow-g  = refl
-twocmp-associative arrow-f arrow-f nil  = refl
 twocmp-associative arrow-g id-t0 _  = refl
-twocmp-associative arrow-f arrow-g nil = refl
 twocmp-associative arrow-f arrow-g id-t0 = refl
 twocmp-associative arrow-f arrow-g arrow-f = refl
 twocmp-associative arrow-f arrow-g arrow-g = refl
-twocmp-associative arrow-f nil nil = refl
-twocmp-associative arrow-f nil id-t0 = refl
-twocmp-associative arrow-f nil arrow-f = refl
-twocmp-associative arrow-f nil arrow-g = refl
-twocmp-associative arrow-g arrow-f nil = refl
 twocmp-associative arrow-g arrow-f id-t0 = refl
 twocmp-associative arrow-g arrow-f arrow-f = refl
 twocmp-associative arrow-g arrow-f arrow-g = refl
-twocmp-associative arrow-g arrow-g nil = refl
 twocmp-associative arrow-g arrow-g id-t0 = refl
 twocmp-associative arrow-g arrow-g arrow-f = refl
 twocmp-associative arrow-g arrow-g arrow-g = refl
-twocmp-associative arrow-g nil nil = refl
-twocmp-associative arrow-g nil id-t0 = refl
-twocmp-associative arrow-g nil  arrow-f = refl
-twocmp-associative arrow-g nil  arrow-g = refl
-twocmp-associative nil id-t0 _ = refl
-twocmp-associative nil nil nil  = refl
-twocmp-associative nil nil id-t0  = refl
-twocmp-associative nil nil arrow-f  = refl
-twocmp-associative nil nil arrow-g  = refl
-twocmp-associative nil arrow-f nil  = refl
-twocmp-associative nil arrow-f id-t0 = refl
-twocmp-associative nil arrow-f arrow-f = refl
-twocmp-associative nil arrow-f arrow-g = refl
-twocmp-associative nil arrow-g nil  = refl
-twocmp-associative nil arrow-g id-t0 = refl
-twocmp-associative nil arrow-g arrow-f = refl
-twocmp-associative nil arrow-g arrow-g = refl
 
 
 _×_ :  { c₁  ℓ : Level }  -> {A B C : TwoObject { c₁} } →  Two-Hom { c₁}  {ℓ}  B C →  Two-Hom { c₁}  {ℓ}  A B  →  Two-Hom { c₁}  {ℓ}  A C 
@@ -110,7 +84,6 @@
       arrow-iso   id-t0 = refl
       arrow-iso  arrow-f = refl
       arrow-iso  arrow-g = refl
-      arrow-iso  nil = refl
 
 open Two-Hom
 
@@ -137,13 +110,11 @@
         identityL {_} {_} {f}  | id-t0 =  refl
         identityL {_} {_} {f}  | arrow-f =  refl
         identityL {_} {_} {f}  | arrow-g =  refl
-        identityL {_} {_} {f}  | nil =  refl
         identityR : {A B : TwoObject} {f : Two-Hom A B} →  Map ( f × Two-id A  ) ≡ Map f
         identityR {a} {b} {f} with Map f
         identityR {_} {_} {f}  | id-t0 =  refl
         identityR {_} {_} {f}  | arrow-f =  refl
         identityR {_} {_} {f}  | arrow-g =  refl
-        identityR {_} {_} {f}  | nil =  refl
         o-resp-≈ : {A B C : TwoObject} {f g :  Two-Hom A B} {h i : Two-Hom B C} →
             Map f ≡ Map g → Map h ≡ Map i → Map ( h × f ) ≡ Map ( i × g )
         o-resp-≈  {a} {b} {c} {f} {g} {h} {i}  f≡g h≡i  = let open ≡-Reasoning in
@@ -166,16 +137,33 @@
                  Map ( (f × g) × h )

 
+--
+--
+--                  f'              
+--             <-----------
+--             ----------->
+--             |    f     ^         g  o fg = f
+--         fg  |          | gf      gf o g  = f 
+--             v          |         f  o gf'= g
+--             ----------->         gf'o f =  g 
+--                  g     
+--
+--
 
 indexFunctor :  {c₁ c₂ ℓ : Level}  (A : Category c₁ c₂ ℓ) 
-        ( a b : Obj A ) ( f g : Hom A a b )  ( nf : Hom A a b ) ( nf-rev : Hom A b a ) ( nidA : Hom A a a ) ( nidB : Hom A b b ) ->  Functor (TwoCat {c₁} {c₂} {ℓ} ) A
-indexFunctor  {c₁} {c₂} {ℓ} A a b f g nf nf-rev nidA nidB = record {
+        ( a b : Obj A ) ( f g : Hom A a b )   ( f' : Hom A b a )  ( fg fg' : Hom A a a ) ( gf gf' : Hom A b b )
+             ( f-iso :  A [ A [ f   o f' ]  ≈ id1 A b ])  
+             ( f'-iso : A [ A [ f'  o f  ]  ≈ id1 A a ])  
+             ( g-iso :  A [ A [ g   o f' ]  ≈ id1 A b ])  
+             ( g'-iso : A [ A [ f'  o g  ]  ≈ id1 A a ])  
+             ->  Functor (TwoCat {c₁} {c₂} {ℓ} ) A
+indexFunctor  {c₁} {c₂} {ℓ} A a b f g f' fg fg' gf gf' f-iso f'-iso g-iso g'-iso = record {
          FObj = λ a → fobj a
        ; FMap = λ f → fmap f
        ; isFunctor = record {
              identity = \{x} -> identity {x}
              ; distr = \ {a} {b} {c} {f} {g}   -> distr1 {a} {b} {c} {f} {g} 
-             ; ≈-cong = {!!}
+             ; ≈-cong = \ {a} {b} {c} {f}   -> ≈-cong  {a} {b} {c} {f} 
        }
       } where
           I = TwoCat  {c₁} {c₂} {ℓ}
@@ -184,13 +172,15 @@
           fobj t1 = b
           fmap1 :  {x y : Obj I } -> Arrow -> Hom A (fobj x) (fobj y)
           fmap1 {t0} {t1}   arrow-f = f
-          fmap1 {t0} {t1}   arrow-g = f
+          fmap1 {t0} {t1}   arrow-g = g
           fmap1 {t0} {t0}   id-t0  = id1 A a
           fmap1 {t1} {t1}   id-t0  = id1 A b
-          fmap1 {t0} {t0}   _ = id1 A a
-          fmap1 {t0} {t1}   _ = nf
-          fmap1 {t1} {t0}   _ = nf-rev
-          fmap1 {t1} {t1}   _ = id1 A b
+          fmap1 {t0} {t0}   arrow-f = fg
+          fmap1 {t0} {t0}   arrow-g = fg'
+          fmap1 {t0} {t1}   _ = f
+          fmap1 {t1} {t0}   _ = f'
+          fmap1 {t1} {t1}   arrow-f = gf
+          fmap1 {t1} {t1}   arrow-g = gf'
           fmap :  {x y : Obj I } -> Hom I x y -> Hom A (fobj x) (fobj y)
           fmap {x} {y} f  = fmap1 {x} {y} ( Map f)
           open ≈-Reasoning (A) 
@@ -199,41 +189,47 @@
           identity {t1}  =  refl-hom
           distr1 : {a₁ : Obj I} {b₁ : Obj I} {c : Obj I} {f₁ : Hom I a₁ b₁} {g₁ : Hom I b₁ c} → A [ fmap (I [ g₁ o f₁ ]) ≈ A [ fmap g₁ o fmap f₁ ] ]
           distr1 {a1} {b1} {c} {f1} {g1}  with  Map f1  |   Map g1 
-          distr1 {t0} {t1} {t0} {_} {_} | fa | arrow-f  =   begin
-                  fmap1 (twocomp arrow-f fa) 
-              ≈⟨⟩
-                  fmap1 nil
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-f | arrow-f  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-f | arrow-g  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-f | id-t0  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-g | arrow-f  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-g | arrow-g  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | arrow-g | id-t0  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | id-t0 | arrow-f  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | id-t0 | arrow-g  =   {!!}
+          distr1 {t0} {t1} {t0} {_} {_} | id-t0 | id-t0  =   sym f'-iso
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-f | arrow-f  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-f | arrow-g  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-f | id-t0  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-g | arrow-f  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-g | arrow-g  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | arrow-g | id-t0  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | id-t0 | arrow-f  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | id-t0 | arrow-g  =   {!!}
+          distr1 {t1} {t0} {t1} {_} {_} | id-t0 | id-t0  =   sym f-iso
+          distr1 {t0} {t0} {t0} {f1} {g1}  | fa  | id-t0 = sym idL
+          distr1 {t0} {t0} {t1} {f1} {g1}  | arrow-f | id-t0 = {!!}
+          distr1 {t0} {t0} {t1} {f1} {g1}  | arrow-g | id-t0 = begin
+                  fmap1 {t0} {t1} arrow-g
               ≈⟨⟩
-                  id1 A b
-              ≈⟨  {!!}   ⟩
-                  f  o fmap1 fa
-              ≈⟨⟩
-                  fmap1 arrow-f o fmap1 fa
-              ∎
-          distr1 {t0} {t1} {t0} {_} {_} | _ | _ = {!!}
-          distr1 {t1} {t0} {t1} {_} {_} | arrow-f | ga =   begin
-                   fmap1 (twocomp ga arrow-f)
-              ≈⟨⟩
-                   id1 A a
+                  g 
               ≈⟨ {!!} ⟩
-                 fmap1 ga o f
-              ≈⟨⟩
-                 fmap1 ga o fmap1 arrow-f
+                  {!!}

-          distr1 {t1} {t0} {t1} {_} {_} | nil | ga =   begin
-                   fmap1 (twocomp ga nil )
-              ≈⟨⟩
-                   id1 A a
-              ≈⟨ {!!} ⟩
-                 fmap1 ga o nf
-              ≈⟨⟩
-                 fmap1 ga o fmap1 nil
-              ∎
-          distr1 {t1} {t0} {t1} {_} {_} | _ | _ = {!!}
-          distr1 {_} {_} {_} {_} {_} | _ | _ = {!!}
-
+          distr1 {t0} {t0} {t1} {f1} {g1}  | id-t0 | id-t0 = {!!}
+          distr1 {t0} {t0} {_} {f1} {g1}  | fa  | arrow-f = {!!}
+          distr1 {t0} {t0} {_} {f1} {g1}  | fa  | arrow-g = {!!}
+          distr1 {t1} {t1} {_} {f1} {g1}  | id-t0  | ga = {!!}
+          distr1 {t1} {t1} {_} {f1} {g1}  | arrow-f  | ga = {!!}
+          distr1 {t1} {t1} {_} {f1} {g1}  | arrow-g  | ga = {!!}
+          distr1 {t1} {t0} {t0} {f1} {g1} | id-t0 | ga =  {!!}
+          distr1 {t1} {t0} {t0} {_} {_} | arrow-f | ga =  {!!}
+          distr1 {t1} {t0} {t0} {_} {_} | arrow-g | ga =  {!!}
+          distr1 {t0} {t1} {t1} {_} {_} | id-t0 | ga =   {!!}
+          distr1 {t0} {t1} {t1} {_} {_} | arrow-f | ga =   {!!}
+          distr1 {t0} {t1} {t1} {_} {_} | arrow-g | ga =   {!!}
           ≈-cong :   {a : Obj I} {b : Obj I} {f g : Hom I a b}  → I [ f ≈ g ] → A [ fmap f ≈ fmap g ]
-          ≈-cong   {_} {_} {f1} {g1} f≈g = ≡-cong f≈g (\x -> fmap1 x)     
+          ≈-cong   {a} {b} {f1} {g1} f≈g  = ≡-cong    {_} {_} {_} {_} {_} {_} f≈g (\x -> fmap1 {a} {b} x)     
 
 
 ---  Equalizer
@@ -261,7 +257,7 @@
         ; uniqueness = λ {d} {h} {fh=gh} {k'} → uniquness d h fh=gh k'
      } where
          I = TwoCat {c₁} {c₂} {ℓ }
-         Γ = indexFunctor A a b f g nf nf-rev nidA nidB
+         Γ = indexFunctor A a b f g nf-rev {!!} {!!} {!!} {!!} {!!} {!!} {!!} {!!}
          nmap :  (x : Obj I) ( d : Obj A ) (h : Hom A d a ) -> Hom A (FObj (K A I d) x) (FObj Γ x)
          nmap x d h = {!!}
          commute1 : {x y : Obj I}  {f' : Hom I x y} (d : Obj A) (h : Hom A d a ) ->  A [ A [ f  o  h ] ≈ A [ g  o h ] ]