Mercurial > hg > Members > kono > Proof > category
comparison equalizer.agda @ 233:4bba19bc71be
e is now explict parameter
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 08 Sep 2013 01:37:24 +0900 |
parents | b0fe61882014 |
children | c02287d3d2dc |
comparison
equal
deleted
inserted
replaced
232:b0fe61882014 | 233:4bba19bc71be |
---|---|
18 module equalizer { c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } where | 18 module equalizer { c₁ c₂ ℓ : Level} { A : Category c₁ c₂ ℓ } where |
19 | 19 |
20 open import HomReasoning | 20 open import HomReasoning |
21 open import cat-utility | 21 open import cat-utility |
22 | 22 |
23 record Equalizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {c a b : Obj A} (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where | 23 record Equalizer { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) {c a b : Obj A} (e : Hom A c a) (f g : Hom A a b) : Set (ℓ ⊔ (c₁ ⊔ c₂)) where |
24 field | 24 field |
25 e : Hom A c a | |
26 fe=ge : A [ A [ f o e ] ≈ A [ g o e ] ] | 25 fe=ge : A [ A [ f o e ] ≈ A [ g o e ] ] |
27 k : {d : Obj A} (h : Hom A d a) → A [ A [ f o h ] ≈ A [ g o h ] ] → Hom A d c | 26 k : {d : Obj A} (h : Hom A d a) → A [ A [ f o h ] ≈ A [ g o h ] ] → Hom A d c |
28 ek=h : {d : Obj A} → ∀ {h : Hom A d a} → {eq : A [ A [ f o h ] ≈ A [ g o h ] ] } → A [ A [ e o k {d} h eq ] ≈ h ] | 27 ek=h : {d : Obj A} → ∀ {h : Hom A d a} → {eq : A [ A [ f o h ] ≈ A [ g o h ] ] } → A [ A [ e o k {d} h eq ] ≈ h ] |
29 uniqueness : {d : Obj A} → ∀ {h : Hom A d a} → {eq : A [ A [ f o h ] ≈ A [ g o h ] ] } → {k' : Hom A d c } → | 28 uniqueness : {d : Obj A} → ∀ {h : Hom A d a} → {eq : A [ A [ f o h ] ≈ A [ g o h ] ] } → {k' : Hom A d c } → |
30 A [ A [ e o k' ] ≈ h ] → A [ k {d} h eq ≈ k' ] | 29 A [ A [ e o k' ] ≈ h ] → A [ k {d} h eq ≈ k' ] |
73 ≈↑⟨ assoc ⟩ | 72 ≈↑⟨ assoc ⟩ |
74 g o ( e o h ) | 73 g o ( e o h ) |
75 ∎ | 74 ∎ |
76 | 75 |
77 -- | 76 -- |
78 -- For e f f, we need e eqa = id1 A a, but it is equal to say k eqa (id a) is id | |
79 -- | |
80 -- Equalizer has free choice of c up to isomorphism, we cannot prove eqa = id a | |
81 | |
82 equalizer-eq-k : { a b : Obj A } {f g : Hom A a b } → (eq : A [ f ≈ g ] ) → ( eqa : Equalizer A {a} f g) → | |
83 A [ e eqa ≈ id1 A a ] → | |
84 A [ k eqa (id1 A a) (f1=g1 eq (id1 A a)) ≈ id1 A a ] | |
85 equalizer-eq-k {a} {b} {f} {g} eq eqa e=1 = let open ≈-Reasoning (A) in | |
86 begin | |
87 k eqa (id1 A a) (f1=g1 eq (id1 A a)) | |
88 ≈⟨ uniqueness eqa ( begin | |
89 e eqa o id1 A a | |
90 ≈⟨ idR ⟩ | |
91 e eqa | |
92 ≈⟨ e=1 ⟩ | |
93 id1 A a | |
94 ∎ )⟩ | |
95 id1 A a | |
96 ∎ | |
97 | |
98 equalizer-eq-e : { a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {a} f g) → (eq : A [ f ≈ g ] ) → | |
99 A [ k eqa (id1 A a) (f1=g1 eq (id1 A a)) ≈ id1 A a ] → | |
100 A [ e eqa ≈ id1 A a ] | |
101 equalizer-eq-e {a} {b} {f} {g} eqa eq k=1 = let open ≈-Reasoning (A) in | |
102 begin | |
103 e eqa | |
104 ≈↑⟨ idR ⟩ | |
105 e eqa o id1 A a | |
106 ≈↑⟨ cdr k=1 ⟩ | |
107 e eqa o k eqa (id1 A a) (f1=g1 eq (id1 A a)) | |
108 ≈⟨ ek=h eqa ⟩ | |
109 id1 A a | |
110 ∎ | |
111 | |
112 -- | |
113 -- | 77 -- |
114 -- An isomorphic element c' of c makes another equalizer | 78 -- An isomorphic element c' of c makes another equalizer |
115 -- | 79 -- |
116 -- e eqa f g f | 80 -- e eqa f g f |
117 -- c ----------> a ------->b | 81 -- c ----------> a ------->b |
119 -- || | 83 -- || |
120 -- h || h-1 | 84 -- h || h-1 |
121 -- v| | 85 -- v| |
122 -- c' | 86 -- c' |
123 | 87 |
124 equalizer+iso : {a b c c' : Obj A } {f g : Hom A a b } ( eqa : Equalizer A {c} f g) → (h-1 : Hom A c' c ) → (h : Hom A c c' ) → | 88 equalizer+iso : {a b c c' : Obj A } {f g : Hom A a b } {e : Hom A c a } { e' : Hom A c' a } |
125 A [ A [ h-1 o h ] ≈ id1 A c ] → A [ A [ h o h-1 ] ≈ id1 A c' ] | 89 ( fe=ge' : A [ A [ f o e' ] ≈ A [ g o e' ] ] ) |
126 → Equalizer A {c'} f g | 90 ( eqa : Equalizer A e f g ) → (h-1 : Hom A c' c ) → (h : Hom A c c' ) → |
127 equalizer+iso {a} {b} {c} {c'} {f} {g} eqa h-1 h h-1-id h-id = record { | 91 A [ A [ e o h-1 ] ≈ e' ] → A [ A [ e' o h ] ≈ e ] |
128 e = A [ e eqa o h-1 ] ; | 92 → Equalizer A e' f g |
93 equalizer+iso {a} {b} {c} {c'} {f} {g} {e} {e'} fe=ge' eqa h-1 h e→e' e'→e = record { | |
129 fe=ge = fe=ge1 ; | 94 fe=ge = fe=ge1 ; |
130 k = λ j eq → A [ h o k eqa j eq ] ; | 95 k = λ j eq → A [ h o k eqa j eq ] ; |
131 ek=h = ek=h1 ; | 96 ek=h = ek=h1 ; |
132 uniqueness = uniqueness1 | 97 uniqueness = uniqueness1 |
133 } where | 98 } where |
134 fe=ge1 : A [ A [ f o A [ e eqa o h-1 ] ] ≈ A [ g o A [ e eqa o h-1 ] ] ] | 99 fe=ge1 : A [ A [ f o e' ] ≈ A [ g o e' ] ] |
135 fe=ge1 = let open ≈-Reasoning (A) in | 100 fe=ge1 = let open ≈-Reasoning (A) in |
136 begin | 101 begin |
137 f o ( e eqa o h-1 ) | 102 f o e' |
103 ≈↑⟨ cdr e→e' ⟩ | |
104 f o ( e o h-1 ) | |
138 ≈⟨ assoc ⟩ | 105 ≈⟨ assoc ⟩ |
139 (f o e eqa ) o h-1 | 106 (f o e ) o h-1 |
140 ≈⟨ car (fe=ge eqa) ⟩ | 107 ≈⟨ car (fe=ge eqa) ⟩ |
141 (g o e eqa ) o h-1 | 108 (g o e ) o h-1 |
142 ≈↑⟨ assoc ⟩ | 109 ≈↑⟨ assoc ⟩ |
143 g o ( e eqa o h-1 ) | 110 g o ( e o h-1 ) |
111 ≈⟨ cdr e→e' ⟩ | |
112 g o e' | |
144 ∎ | 113 ∎ |
145 ek=h1 : {d : Obj A} {j : Hom A d a} {eq : A [ A [ f o j ] ≈ A [ g o j ] ]} → | 114 ek=h1 : {d : Obj A} {j : Hom A d a} {eq : A [ A [ f o j ] ≈ A [ g o j ] ]} → |
146 A [ A [ A [ e eqa o h-1 ] o A [ h o k eqa j eq ] ] ≈ j ] | 115 A [ A [ e' o A [ h o k eqa j eq ] ] ≈ j ] |
147 ek=h1 {d} {j} {eq} = let open ≈-Reasoning (A) in | 116 ek=h1 {d} {j} {eq} = let open ≈-Reasoning (A) in |
148 begin | 117 begin |
149 (e eqa o h-1 ) o ( h o k eqa j eq ) | 118 e' o ( h o k eqa j eq ) |
150 ≈↑⟨ assoc ⟩ | 119 ≈⟨ assoc ⟩ |
151 e eqa o ( h-1 o ( h o k eqa j eq )) | 120 ( e' o h) o k eqa j eq |
152 ≈⟨ cdr assoc ⟩ | 121 ≈⟨ car e'→e ⟩ |
153 e eqa o (( h-1 o h ) o k eqa j eq ) | 122 e o k eqa j eq |
154 ≈⟨ cdr (car (h-1-id )) ⟩ | |
155 e eqa o (id1 A c o k eqa j eq ) | |
156 ≈⟨ cdr idL ⟩ | |
157 e eqa o (k eqa j eq ) | |
158 ≈⟨ ek=h eqa ⟩ | 123 ≈⟨ ek=h eqa ⟩ |
159 j | 124 j |
160 ∎ | 125 ∎ |
161 uniqueness1 : {d : Obj A} {h' : Hom A d a} {eq : A [ A [ f o h' ] ≈ A [ g o h' ] ]} {j : Hom A d c'} → | 126 uniqueness1 : {d : Obj A} {h' : Hom A d a} {eq : A [ A [ f o h' ] ≈ A [ g o h' ] ]} {j : Hom A d c'} → |
162 A [ A [ A [ e eqa o h-1 ] o j ] ≈ h' ] → | 127 A [ A [ e' o j ] ≈ h' ] → |
163 A [ A [ h o k eqa h' eq ] ≈ j ] | 128 A [ A [ h o k eqa h' eq ] ≈ j ] |
164 uniqueness1 {d} {h'} {eq} {j} ej=h = let open ≈-Reasoning (A) in | 129 uniqueness1 {d} {h'} {eq} {j} ej=h = let open ≈-Reasoning (A) in |
165 begin | 130 begin |
166 h o k eqa h' eq | 131 h o k eqa h' eq |
167 ≈⟨ cdr (uniqueness eqa ( | 132 ≈⟨ {!!} ⟩ |
168 begin | |
169 e eqa o ( h-1 o j ) | |
170 ≈⟨ assoc ⟩ | |
171 (e eqa o h-1 ) o j | |
172 ≈⟨ ej=h ⟩ | |
173 h' | |
174 ∎ | |
175 )) ⟩ | |
176 h o ( h-1 o j ) | |
177 ≈⟨ assoc ⟩ | |
178 (h o h-1 ) o j | |
179 ≈⟨ car h-id ⟩ | |
180 id1 A c' o j | |
181 ≈⟨ idL ⟩ | |
182 j | 133 j |
183 ∎ | 134 ∎ |
184 | 135 |
185 -- If we have equalizer f g, e fh gh is also equalizer if we have isomorphic pair (same as above) | 136 |
186 -- | |
187 -- e eqa f g f | |
188 -- c ----------> a ------->b | |
189 -- ^ ---> d ---> | |
190 -- | i h | |
191 -- j| k' (d' → d) | |
192 -- | k (d' → a) | |
193 -- d' | |
194 | |
195 equalizer+h : {a b c d : Obj A } {f g : Hom A a b } ( eqa : Equalizer A {c} f g) (i : Hom A c d ) → (h : Hom A d a ) → (h-1 : Hom A a d ) | |
196 → A [ A [ h o i ] ≈ e eqa ] → A [ A [ h-1 o h ] ≈ id1 A d ] | |
197 → Equalizer A {c} (A [ f o h ]) (A [ g o h ] ) | |
198 equalizer+h {a} {b} {c} {d} {f} {g} eqa i h h-1 eq h-1-id = record { | |
199 e = i ; -- A [ h-1 o e eqa ] ; -- Hom A a d | |
200 fe=ge = fe=ge1 ; | |
201 k = λ j eq' → k eqa (A [ h o j ]) (fhj=ghj j eq' ) ; | |
202 ek=h = ek=h1 ; | |
203 uniqueness = uniqueness1 | |
204 } where | |
205 fhj=ghj : {d' : Obj A } → (j : Hom A d' d ) → | |
206 A [ A [ A [ f o h ] o j ] ≈ A [ A [ g o h ] o j ] ] → | |
207 A [ A [ f o A [ h o j ] ] ≈ A [ g o A [ h o j ] ] ] | |
208 fhj=ghj j eq' = let open ≈-Reasoning (A) in | |
209 begin | |
210 f o ( h o j ) | |
211 ≈⟨ assoc ⟩ | |
212 (f o h ) o j | |
213 ≈⟨ eq' ⟩ | |
214 (g o h ) o j | |
215 ≈↑⟨ assoc ⟩ | |
216 g o ( h o j ) | |
217 ∎ | |
218 fe=ge1 : A [ A [ A [ f o h ] o i ] ≈ A [ A [ g o h ] o i ] ] | |
219 fe=ge1 = let open ≈-Reasoning (A) in | |
220 begin | |
221 ( f o h ) o i | |
222 ≈↑⟨ assoc ⟩ | |
223 f o (h o i ) | |
224 ≈⟨ cdr eq ⟩ | |
225 f o (e eqa) | |
226 ≈⟨ fe=ge eqa ⟩ | |
227 g o (e eqa) | |
228 ≈↑⟨ cdr eq ⟩ | |
229 g o (h o i ) | |
230 ≈⟨ assoc ⟩ | |
231 ( g o h ) o i | |
232 ∎ | |
233 ek=h1 : {d' : Obj A} {k' : Hom A d' d} {eq' : A [ A [ A [ f o h ] o k' ] ≈ A [ A [ g o h ] o k' ] ]} → | |
234 A [ A [ i o k eqa (A [ h o k' ]) (fhj=ghj k' eq') ] ≈ k' ] | |
235 ek=h1 {d'} {k'} {eq'} = let open ≈-Reasoning (A) in | |
236 begin | |
237 i o k eqa (h o k' ) (fhj=ghj k' eq') -- h-1 (h o i ) o k eqa (h o k' ) = h-1 (h o k') | |
238 ≈↑⟨ idL ⟩ | |
239 (id1 A d ) o ( i o k eqa (h o k' ) (fhj=ghj k' eq')) | |
240 ≈↑⟨ car h-1-id ⟩ | |
241 ( h-1 o h ) o ( i o k eqa (h o k' ) (fhj=ghj k' eq')) | |
242 ≈↑⟨ assoc ⟩ | |
243 h-1 o ( h o ( i o k eqa (h o k' ) (fhj=ghj k' eq')) ) | |
244 ≈⟨ cdr assoc ⟩ | |
245 h-1 o ( (h o i ) o k eqa (h o k' ) (fhj=ghj k' eq')) | |
246 ≈⟨ cdr (car eq ) ⟩ | |
247 h-1 o ( (e eqa) o k eqa (h o k' ) (fhj=ghj k' eq')) | |
248 ≈⟨ cdr (ek=h eqa) ⟩ | |
249 h-1 o ( h o k' ) | |
250 ≈⟨ assoc ⟩ | |
251 ( h-1 o h ) o k' | |
252 ≈⟨ car h-1-id ⟩ | |
253 id1 A d o k' | |
254 ≈⟨ idL ⟩ | |
255 k' | |
256 ∎ | |
257 uniqueness1 : {d' : Obj A} {h' : Hom A d' d} {eq' : A [ A [ A [ f o h ] o h' ] ≈ A [ A [ g o h ] o h' ] ]} {k' : Hom A d' c} → | |
258 A [ A [ i o k' ] ≈ h' ] → A [ k eqa (A [ h o h' ]) (fhj=ghj h' eq') ≈ k' ] | |
259 uniqueness1 {d'} {h'} {eq'} {k'} ik=h = let open ≈-Reasoning (A) in | |
260 begin | |
261 k eqa (A [ h o h' ]) (fhj=ghj h' eq') | |
262 ≈⟨ uniqueness eqa ( begin | |
263 e eqa o k' | |
264 ≈↑⟨ car eq ⟩ | |
265 (h o i ) o k' | |
266 ≈↑⟨ assoc ⟩ | |
267 h o (i o k') | |
268 ≈⟨ cdr ik=h ⟩ | |
269 h o h' | |
270 ∎ ) ⟩ | |
271 k' | |
272 ∎ | |
273 | |
274 -- If we have equalizer f g, e hf hg is also equalizer if we have isomorphic pair | |
275 | |
276 h+equalizer : {a b c d : Obj A } {f g : Hom A a b } ( eqa : Equalizer A {c} f g) (h : Hom A b d ) | |
277 → (h-1 : Hom A d b ) → A [ A [ h-1 o h ] ≈ id1 A b ] | |
278 → Equalizer A {c} (A [ h o f ]) (A [ h o g ] ) | |
279 h+equalizer {a} {b} {c} {d} {f} {g} eqa h h-1 h-1-id = record { | |
280 e = e eqa ; | |
281 fe=ge = fe=ge1 ; | |
282 k = λ j eq' → k eqa j (fj=gj j eq') ; | |
283 ek=h = ek=h1 ; | |
284 uniqueness = uniqueness1 | |
285 } where | |
286 fj=gj : {e : Obj A} → (j : Hom A e a ) → A [ A [ A [ h o f ] o j ] ≈ A [ A [ h o g ] o j ] ] → A [ A [ f o j ] ≈ A [ g o j ] ] | |
287 fj=gj j eq = let open ≈-Reasoning (A) in | |
288 begin | |
289 f o j | |
290 ≈↑⟨ idL ⟩ | |
291 id1 A b o ( f o j ) | |
292 ≈↑⟨ car h-1-id ⟩ | |
293 (h-1 o h ) o ( f o j ) | |
294 ≈↑⟨ assoc ⟩ | |
295 h-1 o (h o ( f o j )) | |
296 ≈⟨ cdr assoc ⟩ | |
297 h-1 o ((h o f) o j ) | |
298 ≈⟨ cdr eq ⟩ | |
299 h-1 o ((h o g) o j ) | |
300 ≈↑⟨ cdr assoc ⟩ | |
301 h-1 o (h o ( g o j )) | |
302 ≈⟨ assoc ⟩ | |
303 (h-1 o h) o ( g o j ) | |
304 ≈⟨ car h-1-id ⟩ | |
305 id1 A b o ( g o j ) | |
306 ≈⟨ idL ⟩ | |
307 g o j | |
308 ∎ | |
309 fe=ge1 : A [ A [ A [ h o f ] o e eqa ] ≈ A [ A [ h o g ] o e eqa ] ] | |
310 fe=ge1 = let open ≈-Reasoning (A) in | |
311 begin | |
312 ( h o f ) o e eqa | |
313 ≈↑⟨ assoc ⟩ | |
314 h o (f o e eqa ) | |
315 ≈⟨ cdr (fe=ge eqa) ⟩ | |
316 h o (g o e eqa ) | |
317 ≈⟨ assoc ⟩ | |
318 ( h o g ) o e eqa | |
319 ∎ | |
320 ek=h1 : {d₁ : Obj A} {j : Hom A d₁ a} {eq : A [ A [ A [ h o f ] o j ] ≈ A [ A [ h o g ] o j ] ]} → | |
321 A [ A [ e eqa o k eqa j (fj=gj j eq) ] ≈ j ] | |
322 ek=h1 {d₁} {j} {eq} = ek=h eqa | |
323 uniqueness1 : {d₁ : Obj A} {j : Hom A d₁ a} {eq : A [ A [ A [ h o f ] o j ] ≈ A [ A [ h o g ] o j ] ]} {k' : Hom A d₁ c} → | |
324 A [ A [ e eqa o k' ] ≈ j ] → A [ k eqa j (fj=gj j eq) ≈ k' ] | |
325 uniqueness1 = uniqueness eqa | |
326 | |
327 -- If we have equalizer f g, e (ef) (eg) is also an equalizer and e = id c | |
328 | |
329 eefeg : {a b c : Obj A } {f g : Hom A a b } ( eqa : Equalizer A {c} f g) | |
330 → Equalizer A {c} (A [ f o e eqa ]) (A [ g o e eqa ] ) | |
331 eefeg {a} {b} {c} {f} {g} eqa = record { | |
332 e = id1 A c ; -- i ; -- A [ h-1 o e eqa ] ; -- Hom A a d | |
333 fe=ge = fe=ge1 ; | |
334 k = λ j eq' → k eqa (A [ h o j ]) (fhj=ghj j eq' ) ; | |
335 ek=h = ek=h1 ; | |
336 uniqueness = uniqueness1 | |
337 } where | |
338 i = id1 A c | |
339 h = e eqa | |
340 fhj=ghj : {d' : Obj A } → (j : Hom A d' c ) → | |
341 A [ A [ A [ f o h ] o j ] ≈ A [ A [ g o h ] o j ] ] → | |
342 A [ A [ f o A [ h o j ] ] ≈ A [ g o A [ h o j ] ] ] | |
343 fhj=ghj j eq' = let open ≈-Reasoning (A) in | |
344 begin | |
345 f o ( h o j ) | |
346 ≈⟨ assoc ⟩ | |
347 (f o h ) o j | |
348 ≈⟨ eq' ⟩ | |
349 (g o h ) o j | |
350 ≈↑⟨ assoc ⟩ | |
351 g o ( h o j ) | |
352 ∎ | |
353 fe=ge1 : A [ A [ A [ f o h ] o i ] ≈ A [ A [ g o h ] o i ] ] | |
354 fe=ge1 = let open ≈-Reasoning (A) in | |
355 begin | |
356 ( f o h ) o i | |
357 ≈⟨ car ( fe=ge eqa ) ⟩ | |
358 ( g o h ) o i | |
359 ∎ | |
360 ek=h1 : {d' : Obj A} {k' : Hom A d' c} {eq' : A [ A [ A [ f o h ] o k' ] ≈ A [ A [ g o h ] o k' ] ]} → | |
361 A [ A [ i o k eqa (A [ h o k' ]) (fhj=ghj k' eq') ] ≈ k' ] | |
362 ek=h1 {d'} {k'} {eq'} = let open ≈-Reasoning (A) in | |
363 begin | |
364 i o k eqa (h o k' ) (fhj=ghj k' eq') -- h-1 (h o i ) o k eqa (h o k' ) = h-1 (h o k') | |
365 ≈⟨ idL ⟩ | |
366 k eqa (e eqa o k' ) (fhj=ghj k' eq') | |
367 ≈⟨ uniqueness eqa refl-hom ⟩ | |
368 k' | |
369 ∎ | |
370 uniqueness1 : {d' : Obj A} {h' : Hom A d' c} {eq' : A [ A [ A [ f o h ] o h' ] ≈ A [ A [ g o h ] o h' ] ]} {k' : Hom A d' c} → | |
371 A [ A [ i o k' ] ≈ h' ] → A [ k eqa (A [ h o h' ]) (fhj=ghj h' eq') ≈ k' ] | |
372 uniqueness1 {d'} {h'} {eq'} {k'} ik=h = let open ≈-Reasoning (A) in | |
373 begin | |
374 k eqa ( e eqa o h') (fhj=ghj h' eq') | |
375 ≈⟨ uniqueness eqa ( begin | |
376 e eqa o k' | |
377 ≈↑⟨ cdr idL ⟩ | |
378 e eqa o (id1 A c o k' ) | |
379 ≈⟨ cdr ik=h ⟩ | |
380 e eqa o h' | |
381 ∎ ) ⟩ | |
382 k' | |
383 ∎ | |
384 | 137 |
385 -- | 138 -- |
386 -- If we have two equalizers on c and c', there are isomorphic pair h, h' | 139 -- If we have two equalizers on c and c', there are isomorphic pair h, h' |
387 -- | 140 -- |
388 -- h : c → c' h' : c' → c | 141 -- h : c → c' h' : c' → c |
389 -- h h' = 1 and h' h = 1 | 142 -- e' = h o e |
390 -- not yet done | 143 -- e = h' o e' |
391 | 144 |
392 | 145 |
393 c-iso-l : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' : Equalizer A {c'} f g ) | 146 c-iso-l : { c c' a b : Obj A } {f g : Hom A a b } → {e : Hom A c a } { e' : Hom A c' a } |
394 → ( keqa : Equalizer A {c} (A [ f o e eqa' ]) (A [ g o e eqa' ]) ) | 147 ( eqa : Equalizer A e f g) → ( eqa' : Equalizer A e' f g ) |
148 → ( keqa : Equalizer A (k eqa' e {!!} ) (A [ f o e' ]) (A [ g o e' ]) ) | |
395 → Hom A c c' | 149 → Hom A c c' |
396 c-iso-l {c} {c'} eqa eqa' keqa = e keqa | 150 c-iso-l {c} {c'} eqa eqa' eff = {!!} |
397 | 151 |
398 c-iso-r : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' : Equalizer A {c'} f g ) | 152 c-iso-r : { c c' a b : Obj A } {f g : Hom A a b } {e : Hom A c a } {e' : Hom A c' a} → ( eqa : Equalizer A e f g) → ( eqa' : Equalizer A e' f g ) |
399 → ( keqa : Equalizer A {c} (A [ f o e eqa' ]) (A [ g o e eqa' ]) ) | 153 → ( keqa : Equalizer A (k eqa' e {!!} ) (A [ f o e' ]) (A [ g o e' ]) ) |
400 → Hom A c' c | 154 → Hom A c' c |
401 c-iso-r {c} {c'} eqa eqa' keqa = k keqa (id1 A c') ( f1=g1 (fe=ge eqa') (id1 A c') ) | 155 c-iso-r {c} {c'} eqa eqa' keqa = k keqa (id1 A c') ( f1=g1 (fe=ge eqa') (id1 A c') ) |
402 | 156 |
403 | 157 |
404 -- e(eqa') f | 158 -- e(eqa') f |
411 -- | 165 -- |
412 -- h j e f = h j e g → h = 'j e f | 166 -- h j e f = h j e g → h = 'j e f |
413 -- h = j e f -> j = j' | 167 -- h = j e f -> j = j' |
414 -- | 168 -- |
415 | 169 |
416 c-iso : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' : Equalizer A {c'} f g ) | 170 c-iso : { c c' a b : Obj A } {f g : Hom A a b } → {e : Hom A c a } {e' : Hom A c' a} ( eqa : Equalizer A e f g) → ( eqa' : Equalizer A e' f g ) |
417 → ( keqa : Equalizer A {c} (A [ f o e eqa' ]) (A [ g o e eqa' ]) ) | 171 → ( keqa : Equalizer A (k eqa' e {!!} ) (A [ f o e' ]) (A [ g o e' ]) ) |
418 → A [ A [ c-iso-l eqa eqa' keqa o c-iso-r eqa eqa' keqa ] ≈ id1 A c' ] | 172 → A [ A [ c-iso-l eqa eqa' keqa o c-iso-r eqa eqa' keqa ] ≈ id1 A c' ] |
419 c-iso {c} {c'} {a} {b} {f} {g} eqa eqa' keqa = let open ≈-Reasoning (A) in begin | 173 c-iso {c} {c'} {a} {b} {f} {g} eqa eqa' keqa = let open ≈-Reasoning (A) in begin |
420 c-iso-l eqa eqa' keqa o c-iso-r eqa eqa' keqa | 174 c-iso-l eqa eqa' keqa o c-iso-r eqa eqa' keqa |
421 ≈⟨ ek=h keqa ⟩ | 175 ≈⟨ {!!} ⟩ |
422 id1 A c' | 176 id1 A c' |
423 ∎ | 177 ∎ |
424 | 178 |
425 -- To prove c-iso-r eqa eqa' keqa o c-iso-l eqa eqa' keqa | |
426 -- ke = e' k'e' = e → k k' = 1 , k' k = 1 | |
427 -- ke = e' | |
428 -- k'ke = k'e' = e kk' = 1 | |
429 -- x e = e -> x = id? | |
430 | |
431 ----- | |
432 -- reverse arrow of e (eqa f g) | |
433 -- | |
434 -- e eqa f g f | |
435 -- c ----------> a ------->b | |
436 -- <--------- | |
437 -- k (eff) id1a | |
438 -- (e eqa f g) o k (eff) id1 A a = id1 A a | |
439 -- | |
440 -- eqa (f (e eqa f g) ) (g (e eqa f g) ) | |
441 -- e (eqa (f (e eqa f g) ) (g (e eqa f g) ) ) = k (eff) id1 a | |
442 -- | |
443 -- (e α) o k α (id1 A c) = id1 A c | |
444 -- c a c | |
445 -- ((k (eff) id1a )) o k α e = id1 A c | |
446 | |
447 | |
448 reverse-e' : {a b c : Obj A} (f g : Hom A a b) → (h i : Hom A c b ) → | |
449 ( eqa : {a b c : Obj A} → (f g : Hom A a b) → Equalizer A {c} f g ) → | |
450 A [ k (eqa f f ) (id1 A a ) ( f1=f1 f ) ≈ (e (eqa (A [ f o e (eqa f g) ]) (A [ g o e (eqa f g) ]))) ] | |
451 reverse-e' = ? | |
452 | |
453 reverse-e : {a b c : Obj A} (f g : Hom A a b) → (h i : Hom A c b ) → | |
454 ( eqa : {a b c : Obj A} → (f g : Hom A a b) → Equalizer A {c} f g ) → | |
455 A [ | |
456 A [ k (eqa f f ) (id1 A a ) ( f1=f1 f ) o k (eqa ( A [ f o (e (eqa f g)) ] ) (A [ g o (e (eqa f g )) ] )) (id1 A c) (f1=g1 (fe=ge (eqa f g)) (id1 A c)) ] | |
457 ≈ id1 A c ] | |
458 reverse-e {a} {b} {c} f g h i eqa = let open ≈-Reasoning (A) in | |
459 begin | |
460 k (eqa f f ) (id1 A a ) (f1=f1 f) o k (eqa ( A [ f o (e (eqa f g)) ] ) (A [ g o (e (eqa f g )) ] )) (id1 A c) {!!} | |
461 ≈⟨ car {!!} ⟩ | |
462 e (eqa ( A [ f o (e (eqa f g)) ] ) (A [ g o (e (eqa f g )) ] )) o k (eqa ( A [ f o (e (eqa f g)) ] ) (A [ g o (e (eqa f g )) ] )) (id1 A c) (f1=g1 (fe=ge (eqa f g)) (id1 A c)) | |
463 ≈⟨ ek=h (eqa ( A [ f o (e (eqa f g)) ] ) (A [ g o (e (eqa f g )) ] )) ⟩ | |
464 id1 A c | |
465 ∎ | |
466 | 179 |
467 ---- | 180 ---- |
468 -- | 181 -- |
469 -- An equalizer satisfies Burroni equations | 182 -- An equalizer satisfies Burroni equations |
470 -- | 183 -- |
471 -- b4 is not yet done | 184 -- b4 is not yet done |
472 ---- | 185 ---- |
473 | 186 |
474 lemma-equ1 : {a b c : Obj A} (f g : Hom A a b) → | 187 lemma-equ1 : {a b c : Obj A} (f g : Hom A a b) → |
475 ( {a b c : Obj A} → (f g : Hom A a b) → Equalizer A {c} f g ) → Burroni A {c} f g | 188 ( eqa : {a b c : Obj A} → (f g : Hom A a b) → {e : Hom A c a } { fe=ge1 : A [ A [ f o e ] ≈ A [ g o e ] ] } → Equalizer A e f g ) |
189 → Burroni A {c} f g | |
476 lemma-equ1 {a} {b} {c} f g eqa = record { | 190 lemma-equ1 {a} {b} {c} f g eqa = record { |
477 α = λ f g → e (eqa f g ) ; -- Hom A c a | 191 α = λ f g → equalizer (eqa f g ) ; -- Hom A c a |
478 γ = λ {a} {b} {c} {d} f g h → k (eqa f g ) {d} ( A [ h o (e ( eqa (A [ f o h ] ) (A [ g o h ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) ; -- Hom A c d | 192 γ = λ {a} {b} {c} {d} f g h → k (eqa f g ) {d} ( A [ h o (equalizer ( eqa (A [ f o h ] ) (A [ g o h ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) ; -- Hom A c d |
479 δ = λ {a} f → k (eqa f f) (id1 A a) (lemma-equ2 f); -- Hom A a c | 193 δ = λ {a} f → k (eqa f f) (id1 A a) (lemma-equ2 f); -- Hom A a c |
480 b1 = fe=ge (eqa f g) ; | 194 b1 = fe=ge (eqa f g) ; |
481 b2 = lemma-b2 ; | 195 b2 = lemma-b2 ; |
482 b3 = lemma-b3 ; | 196 b3 = lemma-b3 ; |
483 b4 = lemma-b4 | 197 b4 = lemma-b4 |
494 -- | 208 -- |
495 -- e o id1 ≈ e → k e ≈ id | 209 -- e o id1 ≈ e → k e ≈ id |
496 | 210 |
497 lemma-equ2 : {a b : Obj A} (f : Hom A a b) → A [ A [ f o id1 A a ] ≈ A [ f o id1 A a ] ] | 211 lemma-equ2 : {a b : Obj A} (f : Hom A a b) → A [ A [ f o id1 A a ] ≈ A [ f o id1 A a ] ] |
498 lemma-equ2 f = let open ≈-Reasoning (A) in refl-hom | 212 lemma-equ2 f = let open ≈-Reasoning (A) in refl-hom |
499 lemma-b3 : A [ A [ e (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f) ] ≈ id1 A a ] | 213 lemma-b3 : A [ A [ equalizer (eqa f f ) o k (eqa f f) (id1 A a) (lemma-equ2 f) ] ≈ id1 A a ] |
500 lemma-b3 = let open ≈-Reasoning (A) in | 214 lemma-b3 = let open ≈-Reasoning (A) in |
501 begin | 215 begin |
502 e (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f) | 216 equalizer (eqa f f) o k (eqa f f) (id1 A a) (lemma-equ2 f) |
503 ≈⟨ ek=h (eqa f f ) ⟩ | 217 ≈⟨ ek=h (eqa f f ) ⟩ |
504 id1 A a | 218 id1 A a |
505 ∎ | 219 ∎ |
506 lemma-equ4 : {a b c d : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → | 220 lemma-equ4 : {a b c d : Obj A} → (f : Hom A a b) → (g : Hom A a b ) → (h : Hom A d a ) → |
507 A [ A [ f o A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ] ] ≈ A [ g o A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ] ] ] | 221 A [ A [ f o A [ h o equalizer (eqa (A [ f o h ]) (A [ g o h ])) ] ] ≈ A [ g o A [ h o equalizer (eqa (A [ f o h ]) (A [ g o h ])) ] ] ] |
508 lemma-equ4 {a} {b} {c} {d} f g h = let open ≈-Reasoning (A) in | 222 lemma-equ4 {a} {b} {c} {d} f g h = let open ≈-Reasoning (A) in |
509 begin | 223 begin |
510 f o ( h o e (eqa (f o h) ( g o h ))) | 224 f o ( h o equalizer (eqa (f o h) ( g o h ))) |
511 ≈⟨ assoc ⟩ | 225 ≈⟨ assoc ⟩ |
512 (f o h) o e (eqa (f o h) ( g o h )) | 226 (f o h) o equalizer (eqa (f o h) ( g o h )) |
513 ≈⟨ fe=ge (eqa (A [ f o h ]) (A [ g o h ])) ⟩ | 227 ≈⟨ fe=ge (eqa (A [ f o h ]) (A [ g o h ])) ⟩ |
514 (g o h) o e (eqa (f o h) ( g o h )) | 228 (g o h) o equalizer (eqa (f o h) ( g o h )) |
515 ≈↑⟨ assoc ⟩ | 229 ≈↑⟨ assoc ⟩ |
516 g o ( h o e (eqa (f o h) ( g o h ))) | 230 g o ( h o equalizer (eqa (f o h) ( g o h ))) |
517 ∎ | 231 ∎ |
518 lemma-b2 : {d : Obj A} {h : Hom A d a} → A [ | 232 lemma-b2 : {d : Obj A} {h : Hom A d a} → A [ |
519 A [ e (eqa f g) o k (eqa f g) (A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ]) (lemma-equ4 {a} {b} {c} f g h) ] | 233 A [ equalizer (eqa f g) o k (eqa f g) (A [ h o equalizer (eqa (A [ f o h ]) (A [ g o h ])) ]) (lemma-equ4 {a} {b} {c} f g h) ] |
520 ≈ A [ h o e (eqa (A [ f o h ]) (A [ g o h ])) ] ] | 234 ≈ A [ h o equalizer (eqa (A [ f o h ]) (A [ g o h ])) ] ] |
521 lemma-b2 {d} {h} = let open ≈-Reasoning (A) in | 235 lemma-b2 {d} {h} = let open ≈-Reasoning (A) in |
522 begin | 236 begin |
523 e (eqa f g) o k (eqa f g) (h o e (eqa (f o h) (g o h))) (lemma-equ4 {a} {b} {c} f g h) | 237 equalizer (eqa f g) o k (eqa f g) (h o equalizer (eqa (f o h) (g o h))) (lemma-equ4 {a} {b} {c} f g h) |
524 ≈⟨ ek=h (eqa f g) ⟩ | 238 ≈⟨ ek=h (eqa f g) ⟩ |
525 h o e (eqa (f o h ) ( g o h )) | 239 h o equalizer (eqa (f o h ) ( g o h )) |
526 ∎ | 240 ∎ |
527 | 241 |
528 ------- α(f,g)j id d = α(f,g)j | 242 ------- α(f,g)j id d = α(f,g)j |
529 ------- α(f,g)j id d = α(f,g)j | 243 ------- α(f,g)j id d = α(f,g)j |
530 ------- α(f,g)j α(fα(f,g)j,fα(f,g)j) δ(fα(f,g)j) = α(f,g)j | 244 ------- α(f,g)j α(fα(f,g)j,fα(f,g)j) δ(fα(f,g)j) = α(f,g)j |
532 ------- α(f,g)j α(fα(f,g)j,gα(f,g)j) δ(fα(f,g)j) = α(f,g)j | 246 ------- α(f,g)j α(fα(f,g)j,gα(f,g)j) δ(fα(f,g)j) = α(f,g)j |
533 ------- α(f,g) γ(f,g,α(f,g)j) δ(fα(f,g)j) = α(f,g)j | 247 ------- α(f,g) γ(f,g,α(f,g)j) δ(fα(f,g)j) = α(f,g)j |
534 ------- γ(f,g,α(f,g)j) δ(fα(f,g)j) = j | 248 ------- γ(f,g,α(f,g)j) δ(fα(f,g)j) = j |
535 | 249 |
536 lemma-b4 : {d : Obj A} {j : Hom A d c} → A [ | 250 lemma-b4 : {d : Obj A} {j : Hom A d c} → A [ |
537 A [ k (eqa f g) (A [ A [ e (eqa f g) o j ] o e (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ g o A [ e (eqa f g) o j ] ])) ]) | 251 A [ k (eqa f g) (A [ A [ equalizer (eqa f g) o j ] o equalizer (eqa (A [ f o A [ equalizer (eqa f g) o j ] ]) (A [ g o A [ equalizer (eqa f g) o j ] ])) ]) |
538 (lemma-equ4 {a} {b} {c} f g (A [ e (eqa f g) o j ])) o | 252 (lemma-equ4 {a} {b} {c} f g (A [ equalizer (eqa f g) o j ])) o |
539 k (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ f o A [ e (eqa f g) o j ] ])) (id1 A d) (lemma-equ2 (A [ f o A [ e (eqa f g) o j ] ])) ] | 253 k (eqa (A [ f o A [ equalizer (eqa f g) o j ] ]) (A [ f o A [ equalizer (eqa f g) o j ] ])) (id1 A d) (lemma-equ2 (A [ f o A [ equalizer (eqa f g) o j ] ])) ] |
540 ≈ j ] | 254 ≈ j ] |
541 lemma-b4 {d} {j} = let open ≈-Reasoning (A) in | 255 lemma-b4 {d} {j} = let open ≈-Reasoning (A) in |
542 begin | 256 begin |
543 ( k (eqa f g) (( ( e (eqa f g) o j ) o e (eqa (( f o ( e (eqa f g) o j ) )) (( g o ( e (eqa f g) o j ) ))) )) | 257 ( k (eqa f g) (( ( equalizer (eqa f g) o j ) o equalizer (eqa (( f o ( equalizer (eqa f g) o j ) )) (( g o ( equalizer (eqa f g) o j ) ))) )) |
544 (lemma-equ4 {a} {b} {c} f g (( e (eqa f g) o j ))) o | 258 (lemma-equ4 {a} {b} {c} f g (( equalizer (eqa f g) o j ))) o |
545 k (eqa (( f o ( e (eqa f g) o j ) )) (( f o ( e (eqa f g) o j ) ))) (id1 A d) (lemma-equ2 (( f o ( e (eqa f g) o j ) ))) ) | 259 k (eqa (( f o ( equalizer (eqa f g) o j ) )) (( f o ( equalizer (eqa f g) o j ) ))) (id1 A d) (lemma-equ2 (( f o ( equalizer (eqa f g) o j ) ))) ) |
546 ≈⟨ {!!} ⟩ | 260 ≈⟨ {!!} ⟩ |
547 j | 261 j |
548 ∎ | 262 ∎ |
549 | 263 |
550 | 264 |