changeset 488:016087cfa75a

commaLimit done, commaNat trying..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 12 Mar 2017 20:58:06 +0900
parents c257347a27f3
children 75a60ceb55af
files freyd1.agda
diffstat 1 files changed, 45 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/freyd1.agda	Sun Mar 12 19:46:07 2017 +0900
+++ b/freyd1.agda	Sun Mar 12 20:58:06 2017 +0900
@@ -66,37 +66,69 @@
    } where
        frev : {i : Obj I } → Hom A (limit-c comp (FIA Γ)) (obj (FObj Γ i))
        frev {i} = TMap (t0 ( climit comp (FIA Γ)))  i
-       commute : {a b : Obj I} {f : Hom I a b} →
+       commute : {a b : Obj I} {f : Hom I a b}   →
               C [ C [ FMap (FICG Γ) f o C [ hom (FObj Γ a) o FMap F frev ] ] 
             ≈ C [ C [ hom (FObj Γ b) o FMap F frev ] o FMap (K C I (FObj F (limit-c comp (FIA Γ)))) f ] ]
-       commute  {a} {b} {f} = ?
+       commute  {a} {b} {f} =  let  open ≈-Reasoning (C) in begin
+             FMap (FICG Γ) f o ( hom (FObj Γ a) o FMap F frev )
+         ≈⟨⟩
+             FMap G (arrow (FMap Γ f ) ) o ( hom (FObj Γ a) o FMap F ( TMap (t0 ( climit comp (FIA Γ)))  a ))
+         ≈⟨ assoc ⟩
+             (FMap G (arrow (FMap Γ f ) ) o  hom (FObj Γ a)) o FMap F ( TMap (t0 ( climit comp (FIA Γ)))  a )
+         ≈⟨ car ( comm (FMap Γ f))  ⟩
+              (hom (FObj Γ b) o FMap F (arrow (FMap Γ f)) ) o FMap F ( TMap (t0 ( climit comp (FIA Γ)))  a )
+         ≈↑⟨ assoc ⟩
+              hom (FObj Γ b) o ( FMap F (arrow (FMap Γ f))  o FMap F ( TMap (t0 ( climit comp (FIA Γ)))  a ) )
+         ≈↑⟨  cdr (distr F)  ⟩
+              hom (FObj Γ b) o ( FMap F (A [ arrow (FMap Γ f)  o TMap (t0 ( climit comp (FIA Γ)))  a ] ) )
+         ≈⟨⟩
+              hom (FObj Γ b) o ( FMap F (A [ FMap (FIA Γ)  f  o TMap (t0 ( climit comp (FIA Γ)))  a ] ) )
+         ≈⟨ cdr ( fcong F ( IsNTrans.commute (isNTrans (t0 ( climit comp (FIA Γ)))  ))) ⟩
+              hom (FObj Γ b) o ( FMap F ( A [ (TMap (t0 ( climit comp (FIA Γ))) b) o FMap (K A I (a0 (climit comp (FIA Γ)))) f ] ))
+         ≈⟨⟩
+              hom (FObj Γ b) o ( FMap F ( A [ (TMap (t0 ( climit comp (FIA Γ))) b) o id1 A (limit-c comp (FIA Γ)) ] ))
+         ≈⟨ cdr ( distr F ) ⟩
+              hom (FObj Γ b) o ( FMap F (TMap (t0 ( climit comp (FIA Γ))) b) o FMap F (id1 A (limit-c comp (FIA Γ))))
+         ≈⟨ cdr ( cdr ( IsFunctor.identity (isFunctor F) ) ) ⟩
+              hom (FObj Γ b) o ( FMap F (TMap (t0 ( climit comp (FIA Γ))) b) o id1 C (FObj F (limit-c comp (FIA Γ))))
+         ≈⟨ assoc ⟩
+             ( hom (FObj Γ b) o FMap F frev ) o FMap (K C I (FObj F (limit-c comp (FIA Γ)))) f
+         ∎
        tu : NTrans I C (K C I (FObj F (limit-c comp (FIA Γ)))) (FICG Γ)
        tu  = record {
               TMap  = λ i →  C [ hom ( FObj Γ i ) o  FMap F frev ]
-            ; isNTrans = record { commute = λ {a} {b} {f}→ commute {a} {b} {f} }
+            ; isNTrans = record { commute = λ {a} {b} {f} → commute {a} {b} {f} }
           }
-       uHomF :  Hom C  ( FObj F ( limit-c  comp (FIA Γ) )  ) (FObj G ( (a0 (climit comp (FIA Γ) ))))
-       uHomF  =  limit (isLimit (LimitC comp Γ glimit  )) (FObj F ( limit-c  comp (FIA Γ))) tu
        limitHom : Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) ))
-       limitHom = uHomF
+       limitHom = limit (isLimit (LimitC comp Γ glimit  )) (FObj F ( limit-c  comp (FIA Γ))) tu
 
 
 commaNat : { I : Category c₁ c₂ ℓ } →   ( comp : Complete A I) →  ( Γ : Functor I CommaCategory ) 
-     → ( glimit :  ( Γ : Functor I A ) → ( limita : Limit A I Γ ) → Limit C I (G ○ Γ) )
-     → NTrans I CommaCategory (K CommaCategory I {!!}) Γ
-commaNat {I} comp  Γ gilmit = record {
-       TMap = λ x → {!!}
+     → ( glimit :   LimitPreserve A I C G )
+     → NTrans I CommaCategory (K CommaCategory I (commaLimit {I} comp Γ glimit))  Γ
+commaNat {I} comp  Γ glimit = record {
+       TMap = λ x → record {
+              arrow =  TMap ( limit-u comp (FIA Γ ) ) x 
+            ; comm  =  comm1 x
+          } 
        ; isNTrans = record { commute = {!!} }
     } where
+       comm1 : (x : Obj I )  →
+              C [ C [ FMap G (TMap (limit-u comp (FIA Γ)) x) o hom (FObj (K CommaCategory I (commaLimit comp Γ glimit)) x) ] 
+            ≈ C [ hom (FObj Γ x) o FMap F (TMap (limit-u comp (FIA Γ)) x) ] ] 
+       comm1 x =  let  open ≈-Reasoning (C) in begin
+             ?
+         ≈⟨ ? ⟩
+             ?
 
 
 hasLimit : { I : Category c₁ c₂ ℓ } → ( comp : Complete A I ) 
-    → ( glimit :  ( Γ : Functor I A ) → ( limita : Limit A I Γ ) → Limit C I (G ○ Γ) )
+    → ( glimit :   LimitPreserve A I C G )
     → ( Γ : Functor I CommaCategory ) 
     → Limit CommaCategory I Γ 
 hasLimit {I} comp glimit Γ = record {
-     a0 = {!!} ;
-     t0 = {!!} ;
+     a0 = commaLimit {I} comp Γ glimit ;
+     t0 = commaNat {  I} comp Γ glimit  ;
      isLimit = record {
              limit = λ a t → {!!} ;
              t0f=t = λ {a t i } →  {!!} ;