changeset 408:b265e02b0e0b

if enumarate all possible combination in assoc, it'll pass.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2016 15:01:47 +0900
parents 7bdc93de2d6e
children cb03612d8162
files limit-to.agda
diffstat 1 files changed, 14 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/limit-to.agda	Mon Mar 21 21:08:46 2016 +0900
+++ b/limit-to.agda	Tue Mar 22 15:01:47 2016 +0900
@@ -36,19 +36,15 @@
 
 -- arrow composition
 
-twocomp : {c₁  c₂ : Level } ->  { a b c : TwoObject {c₁} } ->  Arrow  { c₂ }  ->  Arrow  { c₂ }  ->  Maybe ( Arrow  { c₂ }  )
-twocomp {_} {_} {t0} {t1} {t1} id-t1  arrow-f  = just arrow-f
-twocomp {_} {_} {t0} {t1} {t1} id-t1  arrow-g  = just arrow-g
-twocomp {_} {_} {t1} {t1} {t1} id-t1  id-t1  = just id-t1
-twocomp {_} {_} {t0} {t0} {t1} arrow-f  id-t0 = just arrow-f
-twocomp {_} {_} {t0} {t0} {t1} arrow-g  id-t0 = just arrow-g
-twocomp {_} {_} {t0} {t0} {t0} id-t0  id-t0 = just id-t0
-twocomp _ _ = nothing
 
 _×_ :  { c₁  c₂ : Level }  -> {A B C : TwoObject { c₁} } →  Maybe ( Arrow   { c₂ }) →  Maybe ( Arrow    { c₂ })  →  Maybe ( Arrow  { c₂ })  
 _×_   nothing _  = nothing
 _×_   _ nothing  = nothing
-_×_   { c₁} { c₂} {a} {b} {c} (just f)  (just g)   =  twocomp  { c₁} { c₂} {a} {b} {c} f g  
+_×_   { c₁} { c₂} {t1} {t1} {t1} (just id-t1)  (just id-t1)   =  just id-t1
+_×_   { c₁} { c₂} {t0} {t1} {t1} (just id-t1)  (just f)   =  just f
+_×_   { c₁} { c₂} {t0} {t0} {t0} (just id-t0)  (just id-t0)   =  just id-t0
+_×_   { c₁} { c₂} {t0} {t0} {t1} (just f) (just id-t1)     =  just f
+_×_   { c₁} { c₂} {a} {b} {c} (just f)  (just g)   =  nothing
 
 
 [_==_] : { c₁ c₂ : Level}   {a b : TwoObject {c₁} } ->  Rel (Maybe (Arrow  { c₂ })) (c₂) 
@@ -58,29 +54,17 @@
 --       d <- c <- b <- a
 
 assoc-× :   { c₁  c₂ : Level } {a b c d : TwoObject  { c₁} } {f g h : Maybe (Arrow  { c₂ })} → 
-   [ f × (g × h) == (f × g) × h ]
+     [_==_] { c₁} { c₂} {a} {d}  (  _×_ { c₁} { c₂} {a} {b} {d} f ( _×_ { c₁} { c₂} {a} {b} {c} g h )  )
+                (  _×_ { c₁} { c₂} {a} {c} {d}  ( _×_ { c₁} { c₂} {b} {c} {d} f g )   h )
+--    [ f × (g × h) == (f × g) × h ]
 assoc-× {_} {_} {_} {_} {_} {_} {nothing} {_} {_} = nothing
 assoc-× {_} {_} {_} {_} {_} {_} {just _} {nothing} {_} = nothing
-assoc-× {_} {_} {_} {_} {_} {_} {just _} {just _} {nothing} = nothing
-assoc-× {_} {_} {_} {_} {_} {_} {just f} {just g} {just h} with ((just g ) × (just h)) | ((just f ) × (just g)  )
-... | nothing | _ = nothing
-... | just _ | nothing = nothing
-... | just id-t0 | just id-t0 = just refl
-... | just id-t1 | just id-t1 = just refl
-... | just id-t1 | just arrow-f = just refl
-... | just id-t1 | just arrow-g = just refl
-... | just arrow-f | just id-t0  = just refl
-... | just arrow-g | just id-t0  = just refl
-... | just id-t0 | just id-t1 = nothing
-... | just id-t0 | (just arrow-f) = nothing
-... | just id-t0 | (just arrow-g) = nothing
-... | just id-t1 | (just id-t0) = nothing
-... | just arrow-f | (just id-t1) = nothing
-... | just arrow-f | (just arrow-f) = nothing
-... | just arrow-f | (just arrow-g) = nothing
-... | just arrow-g | (just id-t1) = nothing
-... | just arrow-g | (just arrow-f) = nothing
-... | just arrow-g | (just arrow-g) = nothing
+assoc-× {_} {_} {t0} {t0} {t0} {t0} {just id-t0} {just id-t0} {nothing} = nothing
+assoc-× {_} {_} {_} {_} {_} {_} {just _} {just _} {nothing} = {!!}
+assoc-× {_} {_} {t0} {t0} {t0} {t0} {just id-t0 } {just id-t0 } {just id-t0 } = just refl
+assoc-× {_} {_} {t0} {t0} {t0} {t1} {just id-t0 } {just id-t0 } {just id-t0 } = nothing
+assoc-× {_} {_} {_} {_} {_} {_} {just id-t0 } {just id-t0 } {just id-t0 } = ?
+assoc-× {_} {_} {_} {_} {_} {_} {_} {_} {_} = {!!}
 
 TwoId :  { c₁  c₂ : Level } {a : TwoObject  { c₁} } ->  Maybe (Arrow  { c₂ })
 TwoId {_} {_} {t0} = just id-t0