changeset 789:4e1e2f7199c8

CCC Hom done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 19 Apr 2019 19:20:04 +0900
parents a3e124e36acf
children 1e7319868d77
files CCC.agda CCChom.agda
diffstat 2 files changed, 38 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/CCC.agda	Fri Apr 19 12:20:48 2019 +0900
+++ b/CCC.agda	Fri Apr 19 19:20:04 2019 +0900
@@ -44,6 +44,14 @@
         ≈⟨ e2 (○ b o f) ⟩
            ○ a

+     π-id : {a b : Obj A} → A [ < π ,  π' >  ≈ id1 A (a ∧ b ) ]
+     π-id {a} {b} = let open  ≈-Reasoning A in begin
+           < π ,  π' > 
+        ≈↑⟨ π-cong idR idR  ⟩
+          < π o id1 A (a ∧ b)  ,  π'  o id1 A (a ∧ b) >
+        ≈⟨ e3c ⟩
+          id1 A (a ∧ b )
+        ∎
      distr : {a b c d : Obj A} {f : Hom A c a }{g : Hom A c b } {h : Hom A d c } → A [ A [ < f , g > o h ]  ≈  < A [ f o h ] , A [ g o h ] > ]
      distr {a} {b} {c} {d} {f} {g} {h} = let open  ≈-Reasoning A in begin
             < f , g > o h
--- a/CCChom.agda	Fri Apr 19 12:20:48 2019 +0900
+++ b/CCChom.agda	Fri Apr 19 19:20:04 2019 +0900
@@ -58,6 +58,9 @@
                           IsoS A A  a (c ^ b) (a * b) c
        nat-2 : {a b c  : Obj A} → {f : Hom A (b * c) (b * c) } → {g : Hom A a (b * c) }
                  → (A × A) [ (A × A) [ IsoS.≅→ ccc-2 f o (g , g) ] ≈  IsoS.≅→ ccc-2 ( A [ f o g ] ) ]
+       nat-3 : {a b c : Obj A} → { k : Hom A c (a ^ b ) } → A [ A [  IsoS.≅→ (ccc-3) (id1 A (a ^ b)) o
+                    (IsoS.≅← (ccc-2 ) (A [ k o (proj₁ ( IsoS.≅→ ccc-2  (id1 A (c *  b)))) ] ,
+                        (proj₂ ( IsoS.≅→ ccc-2  (id1 A (c *  b) ))))) ] ≈ IsoS.≅→ (ccc-3 ) k ]
 
 open import CCC
 
@@ -80,7 +83,7 @@
             ccc-1 =  λ {a} {b} {c'} → record {   ≅→ =  c101  ; ≅← = c102  ; iso→  = c103 {a} {b} {c'} ; iso←  = c104 ; cong← = c105 ; cong→ = c106 }
           ; ccc-2 =  record {   ≅→ =  c201 ; ≅← = c202 ; iso→  = c203 ; iso←  = c204  ; cong← = c205; cong→ = c206 }
           ; ccc-3 =   record {   ≅→ =  c301 ; ≅← = c302 ; iso→  = c303 ; iso←  = c304 ; cong← = c305 ; cong→ = c306 }
-          ; nat-2 = nat-2
+          ; nat-2 = nat-2 ; nat-3 = nat-3
         }
    } where
       c101 : {a : Obj A} → Hom A a (CCC.1 c) → Hom OneCat OneObj OneObj
@@ -138,6 +141,30 @@
              ≈↑⟨ assoc ⟩
                  ( CCC.π c ) o (f o g)  
              ∎ ) , (sym-hom assoc) where open ≈-Reasoning A
+      nat-3 : {a b : Obj A} {c = c₁ : Obj A} {k : Hom A c₁ ((c CCC.<= a) b)} →
+            A [ A [ c301 (id1 A ((c CCC.<= a) b)) o c202 (A [ k o proj₁ (c201 (id1 A ((c CCC.∧ c₁) b))) ] , proj₂ (c201 (id1 A ((c CCC.∧ c₁) b)))) ]
+            ≈ c301 k ]
+      nat-3 {a} {b} { c₁} {k} =  begin
+                 c301 (id1 A ((c CCC.<= a) b)) o c202 ( k o proj₁ (c201 (id1 A ((c CCC.∧ c₁) b)))  , proj₂ (c201 (id1 A ((c CCC.∧ c₁) b)))) 
+             ≈⟨⟩
+                  ( CCC.ε c o CCC.<_,_> c ((id1 A (CCC._<=_ c a b )) o CCC.π c) (CCC.π' c))
+                     o (CCC.<_,_> c (k o ( CCC.π c o (id1 A (CCC._∧_ c c₁ b )))) ( CCC.π' c o (id1 A (CCC._∧_ c c₁ b))))
+             ≈↑⟨ assoc ⟩
+                 (CCC.ε c) o ((  CCC.<_,_> c ((id1 A (CCC._<=_ c a b )) o CCC.π c) (CCC.π' c))
+                     o (CCC.<_,_> c (k o ( CCC.π c o (id1 A (CCC._∧_ c c₁ b )))) ( CCC.π' c o (id1 A (CCC._∧_ c c₁ b)))))
+             ≈⟨ cdr (car (IsCCC.π-cong (CCC.isCCC c ) idL refl-hom ) )   ⟩
+                 (CCC.ε c) o (  CCC.<_,_> c (CCC.π c) (CCC.π' c)
+                     o (CCC.<_,_> c (k o ( CCC.π c o (id1 A (CCC._∧_ c c₁ b )))) ( CCC.π' c o (id1 A (CCC._∧_ c c₁ b)))))
+             ≈⟨ cdr (car (IsCCC.π-id (CCC.isCCC c)))   ⟩
+                 (CCC.ε c) o ( id1 A (CCC._∧_ c ((c CCC.<= a) b) b )
+                     o (CCC.<_,_> c (k o ( CCC.π c o (id1 A (CCC._∧_ c c₁ b )))) ( CCC.π' c o (id1 A (CCC._∧_ c c₁ b)))))
+             ≈⟨ cdr ( cdr ( IsCCC.π-cong (CCC.isCCC c) (cdr idR) idR )) ⟩
+                 (CCC.ε c) o ( id1 A (CCC._∧_ c ((c CCC.<= a) b) b ) o (CCC.<_,_> c (k o ( CCC.π c )) ( CCC.π' c )))
+             ≈⟨ cdr idL  ⟩
+                 (CCC.ε c) o (CCC.<_,_> c  ( k o  (CCC.π c) ) (CCC.π' c))
+             ≈⟨⟩
+                 c301 k
+             ∎ where open ≈-Reasoning A
 
 
 
@@ -264,19 +291,12 @@
                   ≈⟨⟩
                       <,> f'  g' 
                   ∎ where open ≈-Reasoning A
-               e40 : {a c : Obj A} → { f : Hom A (_*_ h a c ) a } → A [ ≅→ (ccc-3 (isCCChom h)) (≅← (ccc-3 (isCCChom h)) f) ≈ f ]
-               e40 = iso→  (ccc-3 (isCCChom h))
-               e41 : {a c : Obj A} → { f : Hom A a (_^_ h c a )} → A [ ≅← (ccc-3 (isCCChom h)) (≅→ (ccc-3 (isCCChom h))  f) ≈ f ]
-               e41 = iso←  (ccc-3 (isCCChom h))
                e4a : {a b c : Obj A} → { k : Hom A (c /\ b) a } →  A [ A [ ε o ( <,> ( A [ (k *) o π ] )   π')  ] ≈ k ]
                e4a {a} {b} {c} {k} =  begin
                       ε o ( <,> ((k *)  o π  ) π' )
                   ≈⟨⟩
                       ≅→ (ccc-3 (isCCChom h)) (id1 A (_^_ h a b)) o (≅← (ccc-2 (isCCChom h)) ((( ≅← (ccc-3 (isCCChom h)) k) o π ) , π'))
-                  ≈⟨ {!!} ⟩
-                      ≅→ (ccc-3 (isCCChom h)) (id1 A (_^_ h a b)) o (≅← (ccc-2 (isCCChom h))
-                          (_[_o_] (A × A) ( ≅← (ccc-3 (isCCChom h)) k ,  id1 A b )  ( π  , π')))
-                  ≈⟨ {!!} ⟩
+                  ≈⟨ nat-3 (isCCChom h) ⟩
                       ≅→ (ccc-3 (isCCChom h)) (≅← (ccc-3 (isCCChom h)) k) 
                   ≈⟨ iso→  (ccc-3 (isCCChom h))  ⟩
                       k
@@ -286,7 +306,7 @@
                       ( ε o ( <,> (  k o  π  )  π' ) ) *
                   ≈⟨⟩
                      ≅← (ccc-3 (isCCChom h)) ( ≅→ ( ccc-3 (isCCChom h ) {_^_ h a b} {b} ) (id1 A ( _^_ h a b )) o (≅← (ccc-2 (isCCChom h)) ( k o  π , π'))) 
-                  ≈⟨ {!!} ⟩
+                  ≈⟨ cong← (ccc-3 (isCCChom h)) (nat-3 (isCCChom h)) ⟩
                      ≅← (ccc-3 (isCCChom h)) (≅→ (ccc-3 (isCCChom h)) k)
                   ≈⟨ iso←  (ccc-3 (isCCChom h))  ⟩
                       k