changeset 538:d22c93dca806

locally small
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 31 Mar 2017 08:01:13 +0900
parents 2f261a3836bc
children 9a657775d81e
files SetsCompleteness.agda
diffstat 1 files changed, 26 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/SetsCompleteness.agda	Thu Mar 30 18:11:11 2017 +0900
+++ b/SetsCompleteness.agda	Fri Mar 31 08:01:13 2017 +0900
@@ -146,44 +146,32 @@
 
 open Functor
 
+----
+-- C is locally small i.e. Hom C i j is a set c₁
+--
 record Small  {  c₁ c₂ ℓ : Level} ( C : Category c₁ c₂ ℓ ) ( I :  Set  c₁ )
                 : Set (suc (c₁ ⊔ c₂ ⊔ ℓ )) where
    field
-     small→ : Obj C → I
-     small← : I → Obj C
-     small-iso : { x : Obj C  } → Hom C (small← ( small→ x ))  x
-     shom→ : {i j : Obj C  } →    Hom C i j →  I → I 
-     shom← : {i j : I } →  ( f : I → I ) →  Hom C ( small←  i  ) (  small←  j )
-     iso1 :   {a b : Obj C} {f : Hom C a b} →  C [ f o small-iso  ] ≡ C [ small-iso  o shom←  (shom→  f) ]
-
-     -- iso1 should be proved by these ...
-     -- small-≡   : { x : Obj C  } →  (small← ( small→ x )) ≡ x
-     -- shom-iso : {i j : I } →  ( f : Hom C ( small←  i  ) (  small←  j ) ) →  C [ shom← ( shom→ f )  ≈ f ]
+     shom→ : {i j : Obj C } →    Hom C i j →  I → I 
+     shom← : {i j : Obj C } →  ( f : I → I ) →  Hom C i j 
+     shom-iso : {i j : Obj C } →  { f : Hom C i j } →   shom← ( shom→ f )  ≡ f 
      -- ≈-≡ : {a b : Obj C } { x y : Hom C a b } →  (x≈y : C [ x ≈ y ] ) → x ≡ y
 
 open Small 
 
-≡subst : {c : Level } { x y : Set c } { f :  Set c → Set c } → ( x ≡ y ) → f x ≡ f y 
-≡subst {c} {x} {.x} {f} refl =  ≡cong ( λ x → f x ) refl
-
-iid :   {  c₁ c₂ ℓ : Level} { C : Category c₁ c₂ ℓ }  {I :  Set  c₁} ( s : Small C I )  ( Γ : Functor C (Sets  {c₁} ) ){i : Obj C } → 
-     Hom Sets (FObj Γ (small← s (small→ s i))) (FObj Γ i)
-iid  s Γ = FMap Γ ( small-iso s ) 
-
-
 ΓObj :  {  c₁ c₂ ℓ : Level} { C : Category c₁ c₂ ℓ } { I :  Set  c₁ } ( s : Small C I ) ( Γ : Functor C ( Sets { c₁} ))  
-   (i : I ) →  Set c₁
-ΓObj s  Γ i = FObj Γ (small← s i )
+   (i : Obj C ) →  Set c₁
+ΓObj s  Γ i = FObj Γ i
 
 ΓMap :  {  c₁ c₂ ℓ : Level} { C : Category c₁ c₂ ℓ } { I :  Set  c₁ } ( s : Small C I ) ( Γ : Functor C ( Sets { c₁} ))  
-    {i j : I } →  ( f : I → I ) →  ΓObj s Γ i → ΓObj  s Γ j 
+    {i j : Obj C } →  ( f : I → I ) →  ΓObj s Γ i → ΓObj  s Γ j 
 ΓMap  s Γ {i} {j} f = FMap Γ ( shom← s f ) 
 
-record snat   { c₂ }  { I :  Set  c₂ } ( sobj :  I →  Set  c₂ ) 
-     ( smap : { i j :  I  }  → (f : I → I )→  sobj i → sobj j ) : Set  c₂ where
+record snat   { c₂ }  { I OC :  Set  c₂ } ( sobj :  OC →  Set  c₂ ) 
+     ( smap : { i j :  OC  }  → (f : I → I )→  sobj i → sobj j ) : Set  c₂ where
    field 
-       snmap : ( i : I ) → sobj i 
-       sncommute : { i j : I } → ( f : I → I ) →  smap f ( snmap i )  ≡ snmap j
+       snmap : ( i : OC ) → sobj i 
+       sncommute : { i j : OC } → ( f : I → I ) →  smap f ( snmap i )  ≡ snmap j
 
 open snat
 
@@ -194,28 +182,20 @@
 Cone : {  c₁ c₂ ℓ : Level} ( C : Category c₁ c₂ ℓ ) ( I :  Set  c₁ ) ( s : Small C I )  ( Γ : Functor C (Sets  {c₁} ) ) 
     → NTrans C Sets (K Sets C (snat  (ΓObj s Γ) (ΓMap s Γ) ) ) Γ
 Cone C I s  Γ  =  record {
-               TMap = λ i →  λ sn →  iid s Γ ( snmap sn (small→ s i )  )
+               TMap = λ i →  λ sn →  snmap sn i 
              ; isNTrans = record { commute = comm1 }
       } where
     comm1 :  {a b : Obj C} {f : Hom C a b} →
-        Sets [ Sets [ FMap Γ f o (λ sn → iid s Γ (snmap sn (small→ s a))) ] ≈
-        Sets [ (λ sn → iid s Γ (snmap sn (small→ s b))) o FMap (K Sets C (snat (ΓObj s Γ) (ΓMap s Γ))) f ] ]
+        Sets [ Sets [ FMap Γ f o (λ sn → snmap sn a) ] ≈
+        Sets [ (λ sn →  (snmap sn b)) o FMap (K Sets C (snat (ΓObj s Γ) (ΓMap s Γ))) f ] ]
     comm1 {a} {b} {f} = extensionality Sets  ( λ  sn  →  begin
-                 FMap Γ f ( ( FMap Γ ( small-iso s ) ) (snmap sn (small→ s a)) )
+                 FMap Γ f  (snmap sn  a )
+             ≡⟨ ≡cong ( λ f → ( FMap Γ f (snmap sn  a ))) (sym ( shom-iso s  )) ⟩
+                 FMap Γ ( shom← s ( shom→ s f))  (snmap sn  a )
              ≡⟨⟩
-                 ( Sets [ FMap Γ f o  FMap Γ ( small-iso s ) ] ) (snmap sn (small→ s a)) 
-             ≡⟨ ≡cong (λ z → z (snmap sn (small→ s a))  ) (sym ( IsFunctor.distr (isFunctor Γ ) ))  ⟩
-                 FMap Γ ( C [ f o  (small-iso s) ] ) (snmap sn (small→ s a) )
-             ≡⟨  ≡cong (λ z → ( FMap Γ z ) (snmap sn (small→ s a))) (iso1 s) ⟩
-                 FMap  Γ ( C [ (small-iso s) o   shom← s (shom→ s f)  ]  )  ( snmap sn ( small→ s a )) 
-             ≡⟨  ≡cong (λ z → z (snmap sn (small→ s a))  ) ( IsFunctor.distr (isFunctor Γ ) )  ⟩
-                 ( Sets [  FMap  Γ (small-iso s) o  FMap Γ  (shom← s (shom→ s f)) ]  )  ( snmap sn ( small→ s a )) 
-             ≡⟨⟩
-                 ( Sets [  FMap  Γ (small-iso s) o  (ΓMap s Γ (shom→ s  f)) ]  )  ( snmap sn ( small→ s a )) 
-             ≡⟨⟩
-                 FMap  Γ (small-iso s)  ((ΓMap s Γ (shom→ s  f))  ( snmap sn ( small→ s a )) )
-             ≡⟨ ≡cong ( λ y → iid s Γ y ) ( sncommute sn (shom→ s  f) )  ⟩
-                 FMap  Γ (small-iso s) (snmap sn (small→ s b))
+                 ΓMap s Γ (shom→ s f) (snmap sn a ) 
+             ≡⟨ sncommute sn (shom→ s  f) ⟩
+                 snmap sn b
              ∎  ) where
                   open  import  Relation.Binary.PropositionalEquality
                   open ≡-Reasoning
@@ -235,11 +215,11 @@
        }  where
           a0 : Obj Sets
           a0 =  snat  (ΓObj s Γ) (ΓMap s Γ) 
-          comm2 : { a : Obj Sets } {x : a } {i j : I} (t : NTrans C Sets (K Sets C a) Γ) (f : I → I) 
-             → ΓMap s Γ f (TMap t (small← s i) x) ≡ TMap t (small← s j) x
-          comm2 = {!!}
+          comm2 : { a : Obj Sets } {x : a } {i j : Obj C} (t : NTrans C Sets (K Sets C a) Γ) (f : I → I) 
+             → ΓMap s Γ f (TMap t i x) ≡ TMap t j x
+          comm2 {a} {x} t f =  ≡cong ( λ f → f x ) ( IsNTrans.commute ( isNTrans t ) )
           limit1 : (a : Obj Sets) → NTrans C Sets (K Sets C a) Γ → Hom Sets a (snat (ΓObj s Γ) (ΓMap s Γ)) 
-          limit1 a t = λ x →  record { snmap = λ i →  ( TMap t ( small← s i ) ) x ;
+          limit1 a t = λ x →  record { snmap = λ i →  ( TMap t i ) x ;
               sncommute = λ f → comm2 t f }