changeset 534:a90889cc2988

introducing snat
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 29 Mar 2017 14:24:09 +0900
parents c3dcea3a92a7
children 5d7f8921bac0
files SetsCompleteness.agda
diffstat 1 files changed, 24 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
--- a/SetsCompleteness.agda	Wed Mar 29 11:59:59 2017 +0900
+++ b/SetsCompleteness.agda	Wed Mar 29 14:24:09 2017 +0900
@@ -166,59 +166,45 @@
     {i j : I } →  ( f : I → I ) →  ΓObj s Γ i → ΓObj  s Γ j 
 ΓMap  s Γ {i} {j} f = FMap Γ ( shom← s f ) 
 
-
-record slim   { c₂ }  { I :  Set  c₂ } ( sobj :  I →  Set  c₂ ) 
+record snat   { c₂ }  { I :  Set  c₂ } ( sobj :  I →  Set  c₂ ) 
      ( smap : { i j :  I  }  → (f : I → I )→  sobj i → sobj j ) : Set  c₂ where
    field 
-        slim-obj : ( i : I ) → sobj i
-        slim-equ : {i j : I} ( f g : I → I ) → sequ I I f g
+       snmap : ( i : I ) → sobj i 
+       sncommute : { i j : I } → ( f : I → I ) →  smap f ( snmap i )  ≡ snmap j
 
-open slim
+open snat
 
 open import HomReasoning
-
 open NTrans
-open IsEqualizer
-
-SetsLimit-c : {  c₁ c₂ ℓ : Level} { C : Category c₁ c₂ ℓ } { I :  Set  c₁ } ( s : Small C I )  ( Γ : Functor C (Sets  {c₁} ) ) → Obj Sets
-SetsLimit-c {_} {_} {_} {C} {I} s Γ = sequ (slim  (ΓObj s Γ) (ΓMap s Γ)) (iproduct I (λ j → ΓObj s Γ j)  ) {!!} {!!} 
 
 SetsNat : {  c₁ c₂ ℓ : Level} ( C : Category c₁ c₂ ℓ ) ( I :  Set  c₁ ) ( s : Small C I )  ( Γ : Functor C (Sets  {c₁} ) ) 
-    → NTrans C Sets (K Sets C ( SetsLimit-c s Γ ) ) Γ
+    → NTrans C Sets (K Sets C (snat  (ΓObj s Γ) (ΓMap s Γ) ) ) Γ
 SetsNat C I s  Γ  =  record {
-               TMap = λ i →  Sets [ proj i o e ]
+               TMap = λ i →  λ sn →  iid ( snmap sn (small→ s i )  )
              ; isNTrans = record { commute = comm1 }
       } where
-    e  :  Hom Sets  ( SetsLimit-c s Γ ) (iproduct I (λ j → ΓObj s Γ j))
-    e  =  λ x → record { pi1  = λ j →  slim-obj (equ x) j }
     iid :  {i : Obj C } → Hom Sets (FObj Γ (small← s (small→ s i))) (FObj Γ i)
     iid {i} = FMap Γ ( small-iso s ) 
-    proj :  (i : Obj C ) → ( prod : iproduct I (λ j → ΓObj s Γ j )) → FObj Γ i
-    proj i prod = iid (  pi1 prod ( small→ s i )  )
-    equa : {b : Obj Sets } ( e : slim  (ΓObj s Γ) (ΓMap s Γ) → iproduct I (λ j → ΓObj s Γ j) ) → ( f g : Hom Sets (iproduct I (λ j → ΓObj s Γ j)) b ) → 
-           IsEqualizer Sets e f g
-    equa e f g = {!!} -- SetsIsEqualizer ? ? ? ?
-    comm1 :  {a b : Obj C} {f : Hom C a b} → Sets [ Sets [ FMap Γ f o Sets [ proj a o e ] ] ≈
-        Sets [ Sets [ proj b o e ] o FMap (K Sets C  ( SetsLimit-c s Γ ) ) f ] ]
-    comm1 {a} {b} {f} = begin
-          Sets [ FMap Γ f o Sets [ proj a o e ]  ]
-        ≈⟨  assoc  ⟩
-          Sets [ Sets [ FMap Γ f o proj a ]  o e  ]
-        ≈⟨ fe=ge0 {!!} ⟩
-          Sets [ proj b o e ] 
-        ≈↑⟨ idR  ⟩
-          Sets [ Sets [ proj b o e ] o id1 Sets ( SetsLimit-c s Γ) ]
-        ≈⟨⟩
-          Sets [ Sets [ proj b o e ] o FMap (K Sets C  (SetsLimit-c s Γ)) f ] 
-       ∎   where
-            open  ≈-Reasoning Sets
+    comm1 :  {a b : Obj C} {f : Hom C a b} →
+        Sets [ Sets [ FMap Γ f o (λ sn → iid (snmap sn (small→ s a))) ] ≈
+        Sets [ (λ sn → iid (snmap sn (small→ s b))) o FMap (K Sets C (snat (ΓObj s Γ) (ΓMap s Γ))) f ] ]
+    comm1 {a} {b} {f} = extensionality Sets  ( λ  sn  →  begin
+                 FMap Γ f ( iid (snmap sn (small→ s a)) )
+             ≡⟨ {!!} ⟩
+                iid ( (ΓMap s Γ (shom→ s  f))  ( snmap sn ( small→ s a )) )
+             ≡⟨ ≡cong ( λ y → iid y ) ( sncommute sn (shom→ s  f) )  ⟩
+                 iid (snmap sn (small→ s b))
+             ∎  ) where
+                  open  import  Relation.Binary.PropositionalEquality
+                  open ≡-Reasoning
+
 
 
 SetsLimit : {  c₁ c₂ ℓ : Level} ( C : Category c₁ c₂ ℓ ) ( I :  Set  c₁ ) ( small : Small C I ) ( Γ : Functor C (Sets  {c₁} ) ) 
     → Limit Sets C Γ
 SetsLimit { c₂} C I s Γ = record { 
-           a0 =  slim  (ΓObj s Γ) (ΓMap s Γ) 
-         ; t0 = {!!} -- SetsNat C I s Γ
+           a0 =  snat  (ΓObj s Γ) (ΓMap s Γ) 
+         ; t0 = SetsNat C I s Γ
          ; isLimit = record {
                limit  = limit1
              ; t0f=t = {!!}
@@ -226,8 +212,8 @@
            }
        }  where
           a0 : Obj Sets
-          a0 =  slim  (ΓObj s Γ) (ΓMap s Γ) 
+          a0 =  snat  (ΓObj s Γ) (ΓMap s Γ) 
           e  :  Hom Sets a0 (iproduct I (λ j → ΓObj s Γ j))
-          e  =  λ x → record { pi1  = λ j →  slim-obj x j }
-          limit1 : (a : Obj Sets) → NTrans C Sets (K Sets C a) Γ → Hom Sets a (slim (ΓObj s Γ) (ΓMap s Γ)) 
+          e  =  λ x → record { pi1  = λ j →  snmap x j }
+          limit1 : (a : Obj Sets) → NTrans C Sets (K Sets C a) Γ → Hom Sets a (snat (ΓObj s Γ) (ΓMap s Γ)) 
           limit1 = {!!}