changeset 483:265f13adf93b

add NIC
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 11 Mar 2017 10:51:12 +0900
parents fd752ad25ac0
children fcae3025d900
files freyd1.agda
diffstat 1 files changed, 45 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/freyd1.agda	Sat Mar 11 01:35:06 2017 +0900
+++ b/freyd1.agda	Sat Mar 11 10:51:12 2017 +0900
@@ -32,11 +32,14 @@
                } }
 
 open Complete
-
 open CommaObj
 open CommaHom
 open Limit
 
+--  F : A → C
+--  G : A → C
+-- 
+
 FIA : { I : Category c₁ c₂ ℓ } →  ( Γ : Functor I CommaCategory )  → Functor I A
 FIA {I} Γ = record {
   FObj = λ x → obj (FObj Γ x ) ;
@@ -53,7 +56,6 @@
              id1 A  (obj (FObj Γ x))     

 
-
 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 {
@@ -64,6 +66,47 @@
              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 )
 
+NIC : { I : Category c₁ c₂ ℓ } →   ( Γ : Functor I CommaCategory ) 
+     (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) )  → NTrans I C ( K C I (FObj G (obj c)) ) (G ○ ( FIA Γ) )
+NIC  {I} Γ c ta = record {
+        TMap = λ x → FMap G (TMap ta x )
+        ; isNTrans = record { commute = comm1 }
+    }  where
+          comm1 :  {a b : Obj I} {f : Hom I a b} → 
+                C [ C [ FMap (G ○ FIA Γ) f o FMap G (TMap ta a) ] ≈ C [ FMap G (TMap ta b) o FMap (K C I (FObj G (obj c))) f ] ] 
+          comm1 {a} {b} {f} = let  open ≈-Reasoning (C) in begin
+                 FMap (G ○ FIA Γ) f o FMap G (TMap ta a)
+              ≈↑⟨ distr G  ⟩
+                 FMap G ( A [ FMap (FIA Γ) f o TMap ta a ] )
+              ≈⟨ fcong G  ( nat ta  ) ⟩
+                 FMap G ( A [ TMap ta b o FMap (K A I (obj c)) f ] )
+              ≈⟨ distr G  ⟩
+                 FMap G (TMap ta b) o FMap G (FMap (K A I (obj c)) f  )
+              ≈⟨ cdr ( IsFunctor.identity (isFunctor G )) ⟩
+                 FMap G (TMap ta b) o id1 C (FObj G (obj c))
+              ≈⟨⟩
+                 FMap G (TMap ta b) o FMap (K C I (FObj G (obj c))) f
+              ∎
+
+
+NIComma : { I : Category c₁ c₂ ℓ } →   ( Γ : Functor I CommaCategory ) 
+     (c : Obj CommaCategory ) ( ta : NTrans I A ( K A I (obj c) ) (FIA Γ) )  → NTrans I CommaCategory ( K CommaCategory I c )  Γ
+NIComma  {I} Γ c ta = record {
+        TMap = λ x → record {
+                 arrow =  TMap ta x
+              ;  comm =  comm1 x
+            }
+        ; isNTrans = record { commute = {!!} }
+    }  where
+        comm1 :  ( x : Obj I ) → C [ C [ FMap G (TMap ta x) o hom (FObj (K CommaCategory I c) x) ] ≈ C [ hom (FObj Γ x) o FMap F (TMap ta x) ] ] 
+        comm1 x = let  open ≈-Reasoning (C) in begin
+              FMap G (TMap ta x) o hom (FObj (K CommaCategory I c) x)
+           ≈⟨ {!!} ⟩
+              hom (FObj Γ x) o FMap F (TMap ta x) 
+           ∎
+
+
+
 commaLimit :  { I : Category c₁ c₂ ℓ } →  ( Complete A I) →  ( Γ : Functor I CommaCategory )  →  Obj CommaCategory
 commaLimit {I} comp Γ = record {
       obj = limit-c  comp (FIA Γ)