changeset 482:fd752ad25ac0

on going ...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 11 Mar 2017 01:35:06 +0900
parents 65e6906782bb
children 265f13adf93b
files freyd1.agda
diffstat 1 files changed, 35 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/freyd1.agda	Fri Mar 10 23:57:49 2017 +0900
+++ b/freyd1.agda	Sat Mar 11 01:35:06 2017 +0900
@@ -39,37 +39,56 @@
 
 FIA : { I : Category c₁ c₂ ℓ } →  ( Γ : Functor I CommaCategory )  → Functor I A
 FIA {I} Γ = record {
-        FObj = λ x → obj (FObj Γ x ) ;
-        FMap = λ {a} {b} f →  arrow (FMap Γ f )  ;
-        isFunctor = record {
-             identity = λ{x} → {!!}
-             ; distr = λ {a} {b} {c} {f} {g}   → {!!} 
-             ; ≈-cong = λ {a} {b} {c} {f}   → {!!}
-          }}
+  FObj = λ x → obj (FObj Γ x ) ;
+  FMap = λ {a} {b} f →  arrow (FMap Γ f )  ;
+  isFunctor = record {
+             identity = identity
+             ; distr = IsFunctor.distr (isFunctor Γ) 
+             ; ≈-cong = IsFunctor.≈-cong (isFunctor Γ) 
+          }} where
+      identity :  {x : Obj I } → A [ arrow (FMap Γ (id1 I x)) ≈ id1 A  (obj (FObj Γ x)) ]
+      identity {x} = let  open ≈-Reasoning (A) in begin
+             arrow (FMap Γ (id1 I x)) 
+         ≈⟨ IsFunctor.identity (isFunctor Γ)   ⟩
+             id1 A  (obj (FObj Γ x))     
+         ∎
 
-commaLimit :  { I : Category c₁ c₂ ℓ } →  ( Complete A I) →  ( Γ : Functor I CommaCategory )  → Obj CommaCategory
+
+NIA : { I : Category c₁ c₂ ℓ } →   ( Γ : Functor I CommaCategory ) 
+     (c : Obj CommaCategory ) ( ta : NTrans I CommaCategory ( K CommaCategory I c ) Γ )  → NTrans I A ( K A I (obj c) )  (FIA Γ)
+NIA  {I} Γ c ta = record {
+        TMap = λ x → arrow (TMap ta x )
+        ; isNTrans = record { commute = comm1 }
+    }  where
+        comm1 : {a b : Obj I} {f : Hom I a b} → 
+             A [ A [ FMap (FIA Γ) f o arrow (TMap ta a) ] ≈ A [ arrow (TMap ta b) o FMap (K A I (obj c)) f ] ]
+        comm1 {a} {b} {f} = IsNTrans.commute (isNTrans ta )
+
+commaLimit :  { I : Category c₁ c₂ ℓ } →  ( Complete A I) →  ( Γ : Functor I CommaCategory )  →  Obj CommaCategory
 commaLimit {I} comp Γ = record {
       obj = limit-c  comp (FIA Γ)
       ; hom = limitHom
    } where
+       ll =    ( limit (isLimit comp (FIA Γ)) (limit-c  comp (FIA Γ)) {!!})
        limitHom : Hom C (FObj F (limit-c comp (FIA Γ ) )) (FObj G (limit-c comp (FIA Γ) ))
-       limitHom =  C [ FMap G ( limit (isLimit comp (FIA Γ)) {!!} {!!} )   o  {!!}   ]
+       limitHom = C [ FMap G ll   o C [ {!!} o FMap F ll ] ]
 
 
 commaNat : { I : Category c₁ c₂ ℓ } →   ( comp : Complete A I) →  ( Γ : Functor I CommaCategory ) 
-     → ( ta : NTrans I CommaCategory ( K CommaCategory I (commaLimit comp Γ) ) Γ )
-     → NTrans I CommaCategory (K CommaCategory I (commaLimit comp Γ)) Γ
-commaNat {I} comp  Γ ta = record {
+     → (c : Obj CommaCategory )
+     → ( ta : NTrans I CommaCategory ( K CommaCategory I c ) Γ )
+     → NTrans I CommaCategory (K CommaCategory I c) Γ
+commaNat {I} comp  Γ c ta = record {
        TMap = λ x → tmap x
        ; isNTrans = record { commute = {!!} }
     } where
-        tmap :  (i : Obj I) → Hom CommaCategory (FObj (K CommaCategory I (commaLimit comp Γ)) i) (FObj Γ i)
+        tmap :  (i : Obj I) → Hom CommaCategory (FObj (K CommaCategory I c) i) (FObj Γ i)
         tmap i = record {
-              arrow = A [ {!!} o  limit ( isLimit comp (FIA Γ ) ) {!!} {!!} ]
+              arrow = A [ arrow ( TMap ta i)  o  A [  {!!} o limit ( isLimit comp (FIA Γ ) ) (obj c) ( NIA Γ c ta ) ] ]
               ; comm = {!!}
           }
         commute : {a b : Obj I} {f : Hom I a b} → 
-              CommaCategory [ CommaCategory [ FMap Γ f o tmap a ] ≈ CommaCategory [ tmap b o FMap (K CommaCategory I (commaLimit comp Γ)) f ] ]
+              CommaCategory [ CommaCategory [ FMap Γ f o tmap a ] ≈ CommaCategory [ tmap b o FMap (K CommaCategory I c) f ] ]
         commute {a} {b} {f} = {!!}
 
 
@@ -77,7 +96,7 @@
     → ( G-preserve-limit :  ( Γ : Functor I A ) 
        ( lim : Obj A ) ( ta : NTrans I A ( K A I lim ) Γ ) → ( limita : Limit A I Γ lim ta ) → Limit C I (G ○ Γ) (FObj G lim) (tb A I Γ lim ta G  ) )
     → ( Γ : Functor I CommaCategory ) ( ta : NTrans I CommaCategory ( K CommaCategory I (commaLimit comp Γ) ) Γ ) 
-    → Limit CommaCategory I Γ (commaLimit comp Γ ) ( commaNat comp  Γ ta ) 
+    → Limit CommaCategory I Γ (commaLimit comp Γ ) ( commaNat comp  Γ (commaLimit comp Γ) ta ) 
 hasLimit {I} comp gpresrve Γ ta  = record {
      limit = λ a t → {!!} ;
      t0f=t = λ {a t i } →  {!!} ;