Mercurial > hg > Members > kono > Proof > category
comparison src/CCC.agda @ 975:f8fba4f1dcfa
char-m=⊤
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 01 Mar 2021 17:01:00 +0900 |
parents | 5731ffd6cf7a |
children | 8ffdc897f29b |
comparison
equal
deleted
inserted
replaced
974:5731ffd6cf7a | 975:f8fba4f1dcfa |
---|---|
161 field | 161 field |
162 isMono : {c : Obj A} ( f g : Hom A c b ) → A [ A [ mono o f ] ≈ A [ mono o g ] ] → A [ f ≈ g ] | 162 isMono : {c : Obj A} ( f g : Hom A c b ) → A [ A [ mono o f ] ≈ A [ mono o g ] ] → A [ f ≈ g ] |
163 | 163 |
164 open Mono | 164 open Mono |
165 | 165 |
166 record IsTopos {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) ( 1 : Obj A) (○ : (a : Obj A ) → Hom A a 1) | 166 record IsTopos {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (c : CCC A) |
167 ( Ω : Obj A ) | 167 ( Ω : Obj A ) |
168 ( ⊤ : Hom A 1 Ω ) | 168 ( ⊤ : Hom A (CCC.1 c) Ω ) |
169 (Ker : {a : Obj A} → ( h : Hom A a Ω ) → Equalizer A h (A [ ⊤ o (○ a) ])) | 169 (Ker : {a : Obj A} → ( h : Hom A a Ω ) → Equalizer A h (A [ ⊤ o (CCC.○ c a) ])) |
170 (char : {a b : Obj A} → (m : Hom A b a) → Mono A m → Hom A a Ω) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where | 170 (char : {a b : Obj A} → (m : Hom A b a) → Mono A m → Hom A a Ω) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where |
171 field | 171 field |
172 char-ker : {a b : Obj A } {h : Hom A a Ω} | 172 char-ker : {a b : Obj A } {h : Hom A a Ω} (m : Hom A b a) → (mono : Mono A m) |
173 → A [ char (equalizer (Ker h)) record { isMono = λ f g → monic (Ker h) } ≈ h ] | 173 → A [ char m mono ≈ h ] |
174 ker-char : {a b : Obj A} → (m : Hom A b a) → (mono : Mono A m) → Iso A b ( equalizer-c (Ker ( char m mono ))) | 174 ker-char : {a b : Obj A} → (m : Hom A b a) → (mono : Mono A m) → Iso A b ( equalizer-c (Ker ( char m mono ))) |
175 | 175 |
176 record Topos {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) ( 1 : Obj A) (○ : (a : Obj A ) → Hom A a 1) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where | 176 record Topos {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (c : CCC A) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where |
177 field | 177 field |
178 Ω : Obj A | 178 Ω : Obj A |
179 ⊤ : Hom A 1 Ω | 179 ⊤ : Hom A (CCC.1 c) Ω |
180 Ker : {a : Obj A} → ( h : Hom A a Ω ) → Equalizer A h (A [ ⊤ o (○ a) ]) | 180 Ker : {a : Obj A} → ( h : Hom A a Ω ) → Equalizer A h (A [ ⊤ o (CCC.○ c a) ]) |
181 char : {a b : Obj A} → (m : Hom A b a ) → Mono A m → Hom A a Ω | 181 char : {a b : Obj A} → (m : Hom A b a ) → Mono A m → Hom A a Ω |
182 isTopos : IsTopos A 1 ○ Ω ⊤ Ker char | 182 isTopos : IsTopos A c Ω ⊤ Ker char |
183 ker : {a : Obj A} → ( h : Hom A a Ω ) → Hom A ( equalizer-c (Ker h) ) a | 183 ker : {a : Obj A} → ( h : Hom A a Ω ) → Hom A ( equalizer-c (Ker h) ) a |
184 ker h = equalizer (Ker h) | 184 ker h = equalizer (Ker h) |
185 Monik : {a : Obj A} (h : Hom A a Ω) → Mono A (equalizer (Ker h)) | 185 Monik : {a : Obj A} (h : Hom A a Ω) → Mono A (equalizer (Ker h)) |
186 Monik h = record { isMono = λ f g → monic (Ker h ) } | 186 Monik h = record { isMono = λ f g → monic (Ker h ) } |
187 char-m=⊤ : {a b : Obj A} → (m : Hom A b a) → (mono : Mono A m) → A [ A [ char m mono o m ] ≈ A [ ⊤ o CCC.○ c b ] ] | |
188 char-m=⊤ {a} {b} m mono = begin | |
189 char m mono o m ≈⟨ car (IsTopos.char-ker isTopos m mono) ⟩ | |
190 (⊤ o CCC.○ c a) o m ≈↑⟨ assoc ⟩ | |
191 ⊤ o (CCC.○ c a o m ) ≈⟨ cdr (IsCCC.e2 (CCC.isCCC c)) ⟩ | |
192 ⊤ o CCC.○ c b ∎ where open ≈-Reasoning A | |
187 | 193 |
188 record NatD {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) ( 1 : Obj A) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where | 194 record NatD {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) ( 1 : Obj A) : Set ( suc c₁ ⊔ suc c₂ ⊔ suc ℓ ) where |
189 field | 195 field |
190 Nat : Obj A | 196 Nat : Obj A |
191 nzero : Hom A 1 Nat | 197 nzero : Hom A 1 Nat |