changeset 1037:f757156ac9fe

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Apr 2021 19:55:43 +0900
parents b836c3dc7a29
children db3e89065178
files src/ToposEx.agda
diffstat 1 files changed, 109 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/src/ToposEx.agda	Fri Apr 02 11:26:44 2021 +0900
+++ b/src/ToposEx.agda	Fri Apr 02 19:55:43 2021 +0900
@@ -321,60 +321,125 @@
                      nsuc (prop33.xnat (p f (g o π))) o initialNat (prop33.xnat (p f' (g' o π))) ∎
  
   open Functor
-  open import Category.Sets
+  open import Category.Sets hiding (_o_)
   open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym)
 
+  record Singleton (a : Obj A) : Set (c₁ ⊔ c₂ ⊔ ℓ) where
+     field
+        singleton : Hom A (a ∧ a) ( CCC._<=_ c (Ω t) (a ∧ a) )
+        scommute  : A [ A [ CCC.ε c o < singleton , id1 A _ > ] ≈  char t < id1 A _ , id1 A _ > δmono ]  
+
+  tequalizer : {a b : Obj A} → (f g : Hom A a b ) → Equalizer A f g
+  tequalizer {a} {b} f g = record {
+      equalizer-c = equalizer-c  ker
+    ; equalizer = equalizer ker
+    ; isEqualizer = record {
+          fe=ge = {!!}
+        ; k = {!!}
+        ; ek=h = {!!}
+        ; uniqueness = {!!}
+      }
+    } where
+        ker : Equalizer A ( A [  char t < id1 A _ , id1 A b > δmono o < f , g > ] ) (A [ ⊤ t o (CCC.○ c a) ])
+        ker = Ker t ( A [  char t < id1 A _ , id1 A b > δmono o < f , g > ] )
+
+  singleton→mono : {a : Obj A} (s : Singleton a ) → Mono A (Singleton.singleton s)
+  singleton→mono {a} s = record { isMono = λ {b} f g eq → {!!} }
+
+  record Partialmap  (a b : Obj A) :  Set (c₁ ⊔ c₂ ⊔ ℓ) where
+      field
+         p : Obj A
+         d : Hom A p a
+         f : Hom A p b
+         dm  : Mono A d
+
+  record PartialmapClassifier  (b : Obj A) :  Set (c₁ ⊔ c₂ ⊔ ℓ) where
+      field
+         b1 : Obj A
+         η : Hom A b b1
+         pm : Partialmap b1 b
+         pmc : {a : Obj A} ( d f : Hom A a b) → Mono A d → Hom A a b1
+         pb : {a : Obj A} ( d f : Hom A a b) → (dm : Mono A d ) → Pullback A (pmc d f dm) η 
+         uniq : {a : Obj A} ( d f : Hom A a b) → (dm : Mono A d ) → (p : Hom A a b1) → Pullback A p η → A [ pmc d f dm ≈ p ]
+
+  partialmapClassifier : (b : Obj A) → PartialmapClassifier b
+  partialmapClassifier = {!!}
+
   record SubObject (a : Obj A) : Set (c₁ ⊔ c₂ ⊔ ℓ)  where
      field
         sb : Obj A
         sm : Hom A sb a 
         smono : Mono A sm
 
+  postulate
+    I : Set c₁
+    small : Small A I 
 
-  module SubObjectFunctor
-     (S : (a : Set (c₁ ⊔ c₂ ⊔ ℓ))  → Set c₂)
-     (solv← : {x : Obj A} → S (SubObject x) → SubObject x)
-     (solv→ : {x : Obj A} → SubObject x → S (SubObject x))
-     (soiso← : {a : Obj A} → (x : SubObject a) → solv← (solv→ x) ≡ x)
-     (soiso→ : {a : Obj A} → (x : S (SubObject a) ) → solv→ (solv← x) ≡ x)
-     (≡←≈ :   {a b : Obj A } { x y : Hom A a b } →  (x≈y : A [ x ≈ y  ]) → x ≡ y) where
+  open import yoneda A I small
 
-    open SubObject 
-
-    smap : {x y : Obj A} → Hom A y x → SubObject x → SubObject y
-    smap h s = record { sb = sb s ; sm = A [ {!!} o sm s ] ; smono = record { isMono = λ f g eq → Mono.isMono (smono s) f g {!!} } } 
-     -- A [ A [ A [ h o  (sm s) ] o f ] ≈ A [ A [ h o (sm s) ] o g ]  → A [ A [ sm s o f ] ≈ A [ sm s o g ] ]
-
-    Smap : {x y : Obj A} → Hom A y x → Hom Sets (S (SubObject x)) (S (SubObject y))
-    Smap {x} {y} h s = solv→ (smap h (solv← s))
+  cs : CCC SetsAop
+  cs = {!!}
+  
+  toposS : Topos SetsAop cs
+  toposS = {!!}
 
-    SubObjectFuntor  : Functor  (Category.op A)  (Sets {c₂})
-    SubObjectFuntor  = record {
-         FObj = λ x → S (SubObject x)
-       ; FMap = Smap
-       ; isFunctor  = {!!}
-       } 
-
-    sub→topos : (Ω : Obj A) → Representable A ≡←≈ SubObjectFuntor Ω → Topos A c
-    sub→topos Ω R = record {
-          Ω =  Ω
-       ;  ⊤ = {!!}
-       ;  Ker = {!!}
-       ;  char = λ m mono → {!!} 
-       ;  isTopos = record {
-          char-uniqueness  = {!!}
-       ;  ker-m = {!!}
-          } }
- 
-    topos→rep : (t : Topos A c ) → Representable A ≡←≈ SubObjectFuntor (Topos.Ω t)
-    topos→rep t = record {
-        repr→ = record { TMap = λ a Sa → Topos.char t (sm (solv← Sa)) (smono (solv← Sa)) ; isNTrans = record { commute = {!!} } } -- Hom A a Ω
-      ; repr← = record { TMap = λ a h →  solv→ record {sb = equalizer-c (Ker t h) ; sm = equalizer (Ker t h) ; smono =
-         {!!} } ; isNTrans = {!!} }  -- FObj (Sub S) a
-      ; reprId→  = {!!}
-      ; reprId←  = {!!}
-     }
- 
- 
+-- 
+--   module SubObjectFunctor
+--      (S : (a : Set (c₁ ⊔ c₂ ⊔ ℓ))  → Set c₂)
+--      (solv← : {x : Obj A} → S (SubObject x) → SubObject x)
+--      (solv→ : {x : Obj A} → SubObject x → S (SubObject x))
+--      (soiso← : {a : Obj A} → (x : SubObject a) → solv← (solv→ x) ≡ x)
+--      (soiso→ : {a : Obj A} → (x : S (SubObject a) ) → solv→ (solv← x) ≡ x)
+--      (≡←≈ :   {a b : Obj A } { x y : Hom A a b } →  (x≈y : A [ x ≈ y  ]) → x ≡ y) where
+-- 
+--     open SubObject 
+-- 
+--     Smap : {x y : Obj A} → Hom A y x → Hom Sets (S (SubObject x)) (S (SubObject y))
+--     Smap {x} {y} h s = solv→ record { sb = y ; sm = id1 A y ; smono = record { isMono = λ f g eq → sm1 f g eq } } where
+--          sm1 : {a : Obj A } → ( f g : Hom A a y ) → A [ A [ id1 A y o f ]  ≈ A [ id1 A y o g ] ] → A [ f  ≈ g ]
+--          sm1 f g eq = begin
+--               f ≈↑⟨ idL ⟩ 
+--               id1 A y o f ≈⟨ eq ⟩ 
+--               id1 A y o g ≈⟨ idL  ⟩ 
+--               g ∎  
+-- 
+--     SubObjectFuntor  : Functor  (Category.op A)  (Sets {c₂})
+--     SubObjectFuntor  = record {
+--          FObj = λ x → S (SubObject x)
+--        ; FMap = Smap
+--        ; isFunctor  = record {
+--               identity = {!!}
+--             ; distr  = {!!}
+--             ; ≈-cong  = {!!}
+--           }
+--        } 
+-- 
+--     open NTrans 
+--     sub→topos : (Ω : Obj A) → Representable A ≡←≈ SubObjectFuntor Ω → Topos A c
+--     sub→topos Ω R = record {
+--           Ω =  Ω
+--        ;  ⊤ = TMap (Representable.repr→ R) 1 (solv→ record { sb = {!!} ; sm = {!!} ; smono = {!!} })
+--        ;  Ker = λ {a} h → record { equalizer-c = sb {!!}
+--           ; equalizer = sm {!!}
+--           ; isEqualizer = {!!}
+--           }
+--        ;  char = λ m mono → {!!} 
+--        ;  isTopos = record {
+--           char-uniqueness  = {!!}
+--        ;  ker-m = {!!}
+--           } }
+--  
+--     topos→rep : (t : Topos A c ) → Representable A ≡←≈ SubObjectFuntor (Topos.Ω t)
+--     topos→rep t = record {
+--         repr→ = record { TMap = λ a Sa → Topos.char t (sm (solv← Sa)) (smono (solv← Sa)) ; isNTrans = record { commute = {!!} } } -- Hom A a Ω
+--       ; repr← = record { TMap = λ a h →  solv→ record {sb = equalizer-c (Ker t h) ; sm = equalizer (Ker t h) ; smono =
+--          {!!} } ; isNTrans = {!!} }  -- FObj (Sub S) a
+--       ; reprId→  = {!!}
+--       ; reprId←  = {!!}
+--      }
+--  
+--  
+-- 
+--