Mercurial > hg > Members > kono > Proof > category
changeset 1036:b836c3dc7a29
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 02 Apr 2021 11:26:44 +0900 |
parents | b6dbec7e535b |
children | f757156ac9fe |
files | src/ToposEx.agda |
diffstat | 1 files changed, 58 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ToposEx.agda Fri Apr 02 02:48:12 2021 +0900 +++ b/src/ToposEx.agda Fri Apr 02 11:26:44 2021 +0900 @@ -320,59 +320,61 @@ < (nsuc iNat) o π , g o π > o initialNat (prop33.xnat (p f' (g' o π))) ≈⟨⟩ nsuc (prop33.xnat (p f (g o π))) o initialNat (prop33.xnat (p f' (g' o π))) ∎ --- open Functor --- open import Category.Sets --- open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym) --- --- record SubObject (a : Obj A) : Set (c₁ ⊔ c₂ ⊔ ℓ) where --- field --- sb : Obj A --- sm : Hom A sb a --- smono : Mono A sm --- --- postulate --- 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← : (x : Set (c₁ ⊔ c₂ ⊔ ℓ)) → solv← (solv→ x) ≡ x --- -- soiso→ : (x : Set c₂ ) → solv→ (solv← x) ≡ x --- ≡←≈ : {a b : Obj A } { x y : Hom A a b } → (x≈y : A [ x ≈ y ]) → x ≡ y --- 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→ y (smap h (solv← x s)) --- --- 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← a Sa)) (smono (solv← a Sa)) ; isNTrans = record { commute = {!!} } } -- Hom A a Ω --- ; repr← = record { TMap = λ a h → solv→ a record {sb = equalizer-c (Ker t h) ; sm = equalizer (Ker t h) ; smono = --- {!!} } ; isNTrans = {!!} } -- FObj (Sub S) a --- ; reprId→ = {!!} --- ; reprId← = {!!} --- } --- --- --- --- + open Functor + open import Category.Sets + open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym) + + record SubObject (a : Obj A) : Set (c₁ ⊔ c₂ ⊔ ℓ) where + field + sb : Obj A + sm : Hom A sb a + smono : Mono A sm + + + 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 → 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)) + + 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← = {!!} + } + + + +