changeset 676:faf48511f69d

two product as in CWM
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 04 Nov 2017 11:49:45 +0900
parents 1298c3655ba7
children 3b23eeecd4f8
files SetsCompleteness.agda cat-utility.agda pullback.agda
diffstat 3 files changed, 29 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/SetsCompleteness.agda	Fri Nov 03 20:45:46 2017 +0900
+++ b/SetsCompleteness.agda	Sat Nov 04 11:49:45 2017 +0900
@@ -58,15 +58,15 @@
        ; pi  = λ i prod  → pi1 prod i
        ; isIProduct = record {
               iproduct = iproduct1
-            ; pif=q = pif=q
+            ; pif=q = λ {q} {qi} {i} → pif=q {q} {qi} {i}
             ; ip-uniqueness = ip-uniqueness
             ; ip-cong  = ip-cong
        }
    } where
        iproduct1 : {q : Obj Sets} → ((i : I) → Hom Sets q (fi i)) → Hom Sets q (iproduct I fi)
        iproduct1 {q} qi x = record { pi1 = λ i → (qi i) x  }
-       pif=q : {q : Obj Sets} (qi : (i : I) → Hom Sets q (fi i)) {i : I} → Sets [ Sets [ (λ prod → pi1 prod i) o iproduct1 qi ] ≈ qi i ]
-       pif=q {q} qi {i} = refl
+       pif=q : {q : Obj Sets} {qi : (i : I) → Hom Sets q (fi i)} → {i : I} → Sets [ Sets [ (λ prod → pi1 prod i) o iproduct1 qi ] ≈ qi i ]
+       pif=q {q} {qi} {i} = refl
        ip-uniqueness : {q : Obj Sets} {h : Hom Sets q (iproduct I fi)} → Sets [ iproduct1 (λ i → Sets [ (λ prod → pi1 prod i) o h ]) ≈ h ]
        ip-uniqueness = refl
        ipcx : {q :  Obj Sets} {qi qi' : (i : I) → Hom Sets q (fi i)} → ((i : I) → Sets [ qi i ≈ qi' i ]) → (x : q) → iproduct1 qi x ≡ iproduct1 qi' x
--- a/cat-utility.agda	Fri Nov 03 20:45:46 2017 +0900
+++ b/cat-utility.agda	Sat Nov 04 11:49:45 2017 +0900
@@ -228,7 +228,8 @@
                     : Set  (c ⊔ ℓ ⊔ (c₁ ⊔ c₂)) where
            field
               iproduct : {q : Obj A}  → ( qi : (i : I) → Hom A q (ai i) ) → Hom A q p
-              pif=q :   {q : Obj A}  → ( qi : (i : I) → Hom A q (ai i) ) → ∀ { i : I } → A [ A [ ( pi i )  o ( iproduct qi ) ] ≈  (qi i) ]
+              pif=q :   {q : Obj A}  → { qi : (i : I) → Hom A q (ai i) }
+                  → ∀ { i : I } → A [ A [ ( pi i )  o ( iproduct qi ) ] ≈  (qi i) ]
               ip-uniqueness :  {q : Obj A} { h : Hom A q p } → A [ iproduct ( λ (i : I) →  A [ (pi i)  o h ] )  ≈  h ]
               ip-cong : {q : Obj A}   → { qi : (i : I) → Hom A q (ai i) } → { qi' : (i : I) → Hom A q (ai i) }
                         → ( ∀ (i : I ) →  A [ qi i ≈ qi' i ] ) → A [ iproduct qi ≈ iproduct qi' ]
--- a/pullback.agda	Fri Nov 03 20:45:46 2017 +0900
+++ b/pullback.agda	Sat Nov 04 11:49:45 2017 +0900
@@ -329,9 +329,10 @@
 
 limit-ε :
      ( prod :  ( ai : Obj I → Obj A ) →  IProduct A (Obj I) ai )
+     ( aprod :  ( ai : { j k : Obj I} → (Hom I j k)  → Obj A  ) →  ∀{ i j : Obj I} → IProduct A (Hom I i j) ai )
      ( eqa : {a b : Obj A} → (f g : Hom A a b)  → Equalizer A f g )
           → NTrans I A (K A I (equc prod eqa )) Γ
-limit-ε prod eqa = record {
+limit-ε prod aprod eqa = record {
        TMap = λ i → tmap i ; 
        isNTrans = record { commute = commute1 }
    } where
@@ -349,24 +350,29 @@
        e-inv = {!!}
        e-iso : {i j : Obj I} {f : Hom I i j} → A [ A [ equalizer (eqa (A [ FMap Γ f o  proj i ]) ( proj j )) o e-inv ] ≈ id1 A p0 ]
        e-iso = {!!}
-       commute1 :  {i j : Obj I} {f : Hom I i j} →
-         A [ A [ FMap Γ f o tmap i ] ≈ A [ tmap j o FMap (K A I lim) f ] ]
-       commute1 {i} {j} {f} =  let  open ≈-Reasoning (A) in begin
-              FMap Γ f o tmap i 
+       Fcod = λ {j} {k} u →  FObj Γ k
+       commute1 :  {j k : Obj I} {u : Hom I j k} →
+         A [ A [ FMap Γ u o tmap j ] ≈ A [ tmap k o FMap (K A I lim) u ] ]
+       commute1 {j} {k} {u} =  let  open ≈-Reasoning (A) in begin
+              FMap Γ u o tmap j 
          ≈⟨⟩
-              FMap Γ f o ( proj i o e )
+              FMap Γ u o ( proj j o e )
          ≈⟨ assoc ⟩
-              ( FMap Γ f o  proj i ) o e 
+              ( FMap Γ u o  pi (prod (FObj Γ)) j ) o e 
+         ≈↑⟨ car (car ( pif=q (isIProduct (aprod Fcod )))  ) ⟩
+             (( pi (aprod Fcod ) u o iproduct (isIProduct (aprod Fcod)) (FMap Γ)) o  pi (prod (FObj Γ)) j ) o e 
          ≈⟨ {!!} ⟩
-              ((( FMap Γ f o  proj i ) o equalizer (eqa (FMap Γ f o  proj i) ( proj j ))) o {!!} ) o  e
-         ≈⟨ car ( car (fe=ge (isEqualizer (eqa (FMap Γ f o  proj i) ( proj j ))))) ⟩
-              ((proj j o equalizer (eqa (FMap Γ f o  proj i) ( proj j ))) o {!!} ) o  e
+             (( pi (aprod Fcod ) u o iproduct (isIProduct (aprod Fcod)) (λ e → id1 A (FObj Γ (Category.cod I e)))) o  pi (prod (FObj Γ)) k ) o e 
+         ≈⟨ car (car ( pif=q (isIProduct (aprod Fcod )))  ) ⟩
+              ( id1 A (FObj Γ k) o pi (prod (FObj Γ)) k  ) o e 
          ≈⟨ {!!} ⟩
-              proj j o e 
+              ( pi (prod (FObj Γ)) k ) o e 
+         ≈⟨⟩
+              proj k o e 
          ≈↑⟨ idR ⟩
-              (proj j o e ) o id1 A lim
+              (proj k o e ) o id1 A lim
          ≈⟨⟩
-              tmap j o FMap (K A I lim) f
+              tmap k o FMap (K A I lim) u

 
 limit-from :
@@ -375,7 +381,7 @@
       → Limit A I Γ 
 limit-from prod eqa = record {
      a0 = equalizer-c p0equ ;
-     t0 = limit-ε prod eqa ; 
+     t0 = limit-ε prod {!!} eqa ; 
      isLimit = record {
              limit = λ a t → limit1 a t ;
              t0f=t = λ {a t i } → t0f=t1  {a} {t} {i} ;
@@ -394,20 +400,20 @@
          limit1 :  (a : Obj A) → NTrans I A (K A I a) Γ → Hom A a lim
          limit1 a t = let  open ≈-Reasoning (A) in k equ (iproduct prodΓ (TMap t) ) refl-hom
          t0f=t1 :  {a : Obj A} {t : NTrans I A (K A I a) Γ} {i : Obj I} →
-                A [ A [ TMap (limit-ε prod eqa ) i o limit1 a t ] ≈ TMap t i ]
+                A [ A [ TMap (limit-ε prod {!!} eqa ) i o limit1 a t ] ≈ TMap t i ]
          t0f=t1 {a} {t} {i} = let  open ≈-Reasoning (A) in begin
-                   TMap (limit-ε prod eqa ) i o limit1 a t 
+                   TMap (limit-ε prod {!!} eqa ) i o limit1 a t 
                 ≈⟨⟩
                    ( ( proj i )  o e ) o  k equ (iproduct prodΓ (TMap t) ) refl-hom
                 ≈↑⟨ assoc  ⟩
                     proj i  o ( e  o  k equ (iproduct prodΓ (TMap t) ) refl-hom )
                 ≈⟨ cdr ( ek=h equ) ⟩
                     proj i  o iproduct prodΓ (TMap t)
-                ≈⟨ pif=q prodΓ (TMap t) ⟩
+                ≈⟨ pif=q prodΓ ⟩
                    TMap t i 

          limit-uniqueness1 :  {a : Obj A} {t : NTrans I A (K A I a) Γ} {f : Hom A a lim} 
-                → ({i : Obj I} → A [ A [ TMap (limit-ε prod eqa ) i o f ] ≈ TMap t i ]) →
+                → ({i : Obj I} → A [ A [ TMap (limit-ε prod {!!} eqa ) i o f ] ≈ TMap t i ]) →
                 A [ limit1 a t ≈ f ]
          limit-uniqueness1 {a} {t} {f} lim=t = let  open ≈-Reasoning (A) in begin
                     limit1 a t