changeset 500:6c993c1fe9de

try to make prodcut and equalizer in Sets
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 15 Mar 2017 19:26:51 +0900
parents 511fd37d90ec
children 61daa68a70c4
files SetsCompleteness.agda
diffstat 1 files changed, 59 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SetsCompleteness.agda	Wed Mar 15 19:26:51 2017 +0900
@@ -0,0 +1,59 @@
+
+open import Category -- https://github.com/konn/category-agda                                                                                     
+open import Level
+open import Category.Sets
+
+module SetsCompleteness where
+
+
+open import HomReasoning
+open import cat-utility
+open import Relation.Binary.Core
+open import Function
+open import Data.Product
+
+
+SetsProduct :  {  c₂ : Level} → CreateProduct ( Sets  {  c₂} )
+SetsProduct { c₂ } = record { 
+         product =  λ a b →  a × b
+       ; π1 = λ a b → λ ab → (proj₁ ab)
+       ; π2 = λ a b → λ ab → (proj₂ ab)
+       ; isProduct =  λ a b → record {
+              _×_  = λ f g  x →  ( f x , g x )
+              ; π1fxg=f = refl
+              ; π2fxg=g  = refl
+              ; uniqueness = refl
+              ; ×-cong   =  λ {c} {f} {f'} {g} {g'} f=f g=g →  prod-cong a b f=f g=g
+          }
+      } where
+          prod-cong : ( a b : Obj (Sets {c₂}) ) {c : Obj (Sets {c₂}) } {f f' : Hom Sets c a } {g g' : Hom Sets c b }
+              → Sets [ f ≈ f' ] → Sets [ g ≈ g' ]
+              → Sets [ (λ x → f x , g x) ≈ (λ x → f' x , g' x) ]
+          prod-cong a b {c} {f} {.f} {g} {.g} refl refl = refl
+
+
+SetsEqualizer :  {  c₂ : Level}  →  {a b : Obj (Sets {c₂}) }  (f g : Hom (Sets {c₂}) a b) → Equalizer Sets f g
+SetsEqualizer f g = record { 
+           equalizer-c = {!!} 
+         ; equalizer = {!!}
+         ; isEqualizer = record {
+               fe=ge  = {!!}
+             ; k = {!!}
+             ; ek=h = {!!}
+             ; uniqueness  = {!!}
+           }
+       }
+
+
+SetsLimit : { c₁' c₂' ℓ' : Level} {  c₂ : Level}  ( I : Category c₁' c₂' ℓ' ) → ( Γ : Functor I (Sets { c₂}) ) →  Limit Sets I Γ
+SetsLimit I Γ = record { 
+           a0 = {!!} 
+         ; t0 = {!!}
+         ; isLimit = record {
+               limit  = {!!}
+             ; t0f=t = {!!}
+             ; limit-uniqueness  = {!!}
+           }
+       }
+
+