changeset 390:1301270b8942

null does not work
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 15 Mar 2016 11:45:43 +0900
parents 79c7ab66152b
children 2ee1496b31d7
files limit-to.agda
diffstat 1 files changed, 21 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/limit-to.agda	Tue Mar 15 10:52:39 2016 +0900
+++ b/limit-to.agda	Tue Mar 15 11:45:43 2016 +0900
@@ -35,15 +35,16 @@
 record RawHom {c₁ ℓ : Level}  (a : TwoObject {c₁}  ) (b : TwoObject {c₁}  ) : Set  (c₁  ⊔ ℓ) where
    field
        RawMap    : Arrow  {ℓ }
+       isNull    : TwoObject  {c₁}
 
 open RawHom
 
 arrow2hom :  {c₁ ℓ : Level}  -> (a : TwoObject {c₁}  ) (b : TwoObject {c₁}  ) -> Arrow  {ℓ } -> RawHom  { c₁}  {ℓ } a b
-arrow2hom t0 t0 id-t0 =  record { RawMap = id-t0  } 
-arrow2hom t1 t1 id-t1 =  record { RawMap = id-t1  } 
-arrow2hom t0 t1 arrow-f =  record { RawMap = arrow-f } 
-arrow2hom t0 t1 arrow-g =  record { RawMap = arrow-g  } 
-arrow2hom _ _ _  =  record { RawMap = nil  } 
+arrow2hom t0 t0 id-t0 =  record { RawMap = id-t0 ; isNull = t0  } 
+arrow2hom t1 t1 id-t1 =  record { RawMap = id-t1 ; isNull = t0  } 
+arrow2hom t0 t1 arrow-f =  record { RawMap = arrow-f ; isNull = t0 } 
+arrow2hom t0 t1 arrow-g =  record { RawMap = arrow-g ; isNull = t0  } 
+arrow2hom _ _ f  =  record { RawMap = f ; isNull = t1  } 
 
 record Two-Hom { c₁  ℓ : Level }   (a : TwoObject { c₁}  ) (b : TwoObject  { c₁} ) : Set   (c₁  ⊔ ℓ)  where
    field
@@ -53,13 +54,13 @@
    Map = RawMap hom
 
 Two-id :  {c₁ ℓ : Level } -> (a : TwoObject {c₁} ) ->   Two-Hom {c₁} { ℓ} a a 
-Two-id t0  = record { hom = record { RawMap = id-t0  } ;  arrow-iso = refl }
-Two-id t1  = record { hom = record { RawMap = id-t1  } ;  arrow-iso = refl }
+Two-id t0  = record { hom = record { isNull = t0 ;RawMap = id-t0  } ;   arrow-iso = refl }
+Two-id t1  = record { hom = record { isNull = t0 ;RawMap = id-t1  } ;   arrow-iso = refl }
 
 Two-nothing : {c₁ ℓ : Level } -> ( a b : TwoObject  {c₁} ) -> Two-Hom  {c₁} { ℓ} a b
 Two-nothing a b  = record { hom = record { RawMap = nil } ; arrow-iso = arrow-iso  a b }
    where
-      arrow-iso : {c₁ ℓ : Level } -> ( a b : TwoObject  {c₁} ) -> arrow2hom {c₁} {ℓ } a b nil ≡ record { RawMap = nil }
+      arrow-iso : {c₁ ℓ : Level } -> ( a b : TwoObject  {c₁} ) -> arrow2hom {c₁} {ℓ } a b nil ≡ record { RawMap = nil ; isNull = t1 }
       arrow-iso  t0 t0 =  refl
       arrow-iso  t0 t1 =  refl
       arrow-iso  t1 t0 =  refl
@@ -74,19 +75,19 @@
 
 _×_ :  { c₁  ℓ : Level }  -> {A B C : TwoObject { c₁} } →  Two-Hom { c₁}  {ℓ}  B C →  Two-Hom { c₁}  {ℓ}  A B  →  Two-Hom { c₁}  {ℓ}  A C 
 _×_   { c₁} {ℓ} {a} {b} {c} f g  = record { hom = 
-           record { RawMap =     twocomp  {ℓ} (Two-Hom.Map f) (Two-Hom.Map g) } ;  
-                    arrow-iso =  arrow-iso a c ( twocomp  {ℓ} (Two-Hom.Map f) (Two-Hom.Map g) ) }
+           record { RawMap =     arrow ; isNull = nul } ;  
+                    arrow-iso =  arrow-iso a c ( arrow ) nul }
    where
-      arrow-iso : {c₁ ℓ : Level } -> ( a b : TwoObject  {c₁} ) -> (f : Arrow { ℓ} ) -> arrow2hom {c₁} {ℓ } a b f ≡ record { RawMap = f }
-      arrow-iso t0 t0 id-t0  = refl
-      arrow-iso t1 t1 id-t1  = refl
-      arrow-iso t0 t1 arrow-f  = refl
-      arrow-iso t0 t1 arrow-g  = refl
-      arrow-iso t0 t0 nil  = refl
-      arrow-iso t0 t1 nil  = refl
-      arrow-iso t1 t0 nil  = refl
-      arrow-iso t1 t1 nil  = refl
-      arrow-iso _ _ _  = {!!}
+      arrow  =   twocomp  {ℓ} (Two-Hom.Map f) (Two-Hom.Map g) 
+      nul  =   isNull ( arrow2hom a b arrow  )
+      arrow-iso : {c₁ ℓ : Level } -> ( a b : TwoObject  {c₁} ) -> (f : Arrow { ℓ} ) -> ( n : TwoObject {c₁} ) -> 
+             arrow2hom {c₁} {ℓ } a b f  ≡ record { RawMap = f ; isNull = n }
+      arrow-iso t0 t0 id-t0  t0 = refl
+      arrow-iso t1 t1 id-t1  t0 = refl
+      arrow-iso t0 t1 arrow-f  t0 = refl
+      arrow-iso t0 t1 arrow-g  t0 = refl
+      arrow-iso _ _ _  t0 = {!!}
+      arrow-iso _ _ _  t1 = ?
 
 open Two-Hom