comparison pullback.agda @ 303:7f40d6a51c72

Limit form equalizer and product done. Use equalizer to provle naturality of limit-ε
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 04 Nov 2013 14:46:07 +0900
parents c5b2656dbec6
children 702adc45704f
comparison
equal deleted inserted replaced
302:c5b2656dbec6 303:7f40d6a51c72
312 _*' univ t 312 _*' univ t
313 ≈⟨ ( coIsUniversalMapping.couniquness ( iscoUniversalMapping univ) ) εf=t ⟩ 313 ≈⟨ ( coIsUniversalMapping.couniquness ( iscoUniversalMapping univ) ) εf=t ⟩
314 f 314 f
315 315
316 316
317
318 lemma-p0 : (a b ab : Obj A) ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( prod : Product A a b ab π1 π2 ) →
319 A [ _×_ prod π1 π2 ≈ id1 A ab ]
320 lemma-p0 a b ab π1 π2 prod = let open ≈-Reasoning (A) in begin
321 _×_ prod π1 π2
322 ≈↑⟨ ×-cong prod idR idR ⟩
323 _×_ prod (A [ π1 o id1 A ab ]) (A [ π2 o id1 A ab ])
324 ≈⟨ Product.uniqueness prod ⟩
325 id1 A ab
326
327
328
317 ----- 329 -----
318 -- 330 --
319 -- product on arbitrary index 331 -- product on arbitrary index
320 -- 332 --
321 333
325 ( pi : (i : I ) → Hom A p ( ai i ) ) -- projections 337 ( pi : (i : I ) → Hom A p ( ai i ) ) -- projections
326 : Set (c ⊔ ℓ ⊔ (c₁ ⊔ c₂)) where 338 : Set (c ⊔ ℓ ⊔ (c₁ ⊔ c₂)) where
327 field 339 field
328 product : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → Hom A q p 340 product : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → Hom A q p
329 pif=q : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → ∀ { i : I } → A [ A [ ( pi i ) o ( product qi ) ] ≈ (qi i) ] 341 pif=q : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → ∀ { i : I } → A [ A [ ( pi i ) o ( product qi ) ] ≈ (qi i) ]
330 -- special case of product ( qi = pi ) ( should b proved from pif=q )
331 -- we cannot prove this because qi/pi cannot be interleaved , should be the way to prove
332 pif=q1 : { i : I } → { qi : Hom A p (ai i) } → A [ pi i ≈ qi ]
333 ip-uniqueness : {q : Obj A} { h : Hom A q p } → A [ product ( λ (i : I) → A [ (pi i) o h ] ) ≈ h ] 342 ip-uniqueness : {q : Obj A} { h : Hom A q p } → A [ product ( λ (i : I) → A [ (pi i) o h ] ) ≈ h ]
334 ip-cong : {q : Obj A} → { qi : (i : I) → Hom A q (ai i) } → { qi' : (i : I) → Hom A q (ai i) } 343 ip-cong : {q : Obj A} → { qi : (i : I) → Hom A q (ai i) } → { qi' : (i : I) → Hom A q (ai i) }
335 → ( ∀ (i : I ) → A [ qi i ≈ qi' i ] ) → A [ product qi ≈ product qi' ] 344 → ( ∀ (i : I ) → A [ qi i ≈ qi' i ] ) → A [ product qi ≈ product qi' ]
336 -- another form of uniquness 345 -- another form of uniquness
337 ip-uniquness1 : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → ( product' : Hom A q p ) 346 ip-uniqueness1 : {q : Obj A} → ( qi : (i : I) → Hom A q (ai i) ) → ( product' : Hom A q p )
338 → ( ∀ { i : I } → A [ A [ ( pi i ) o product' ] ≈ (qi i) ] ) 347 → ( ∀ { i : I } → A [ A [ ( pi i ) o product' ] ≈ (qi i) ] )
339 → A [ product' ≈ product qi ] 348 → A [ product' ≈ product qi ]
340 ip-uniquness1 {a} qi product' eq = let open ≈-Reasoning (A) in begin 349 ip-uniqueness1 {a} qi product' eq = let open ≈-Reasoning (A) in begin
341 product' 350 product'
342 ≈↑⟨ ip-uniqueness ⟩ 351 ≈↑⟨ ip-uniqueness ⟩
343 product (λ i₁ → A [ pi i₁ o product' ]) 352 product (λ i₁ → A [ pi i₁ o product' ])
344 ≈⟨ ip-cong ( λ i → begin 353 ≈⟨ ip-cong ( λ i → begin
345 pi i o product' 354 pi i o product'
346 ≈⟨ eq {i} ⟩ 355 ≈⟨ eq {i} ⟩
347 qi i 356 qi i
348 ∎ ) ⟩ 357 ∎ ) ⟩
349 product qi 358 product qi
350 359
351 pif=q1' : { i : I } → { qi : (j : I ) → Hom A p (ai j) } → A [ pi i ≈ qi i ]
352 pif=q1' {i} {qi} = let open ≈-Reasoning (A) in begin
353 pi i
354 ≈↑⟨ idR ⟩
355 pi i o id1 A p
356 ≈⟨ cdr ( ip-uniquness1 {p} qi (id1 A p) ( begin
357 pi ? o id1 A p
358 ≈⟨ {!!} ⟩
359 qi ?
360 ∎ )) ⟩
361 pi i o product qi
362 ≈⟨ pif=q {p} qi {i} ⟩
363 qi i
364
365 360
366 open IProduct 361 open IProduct
367 open Equalizer 362 open Equalizer
368 363
369 -- 364 --
373 -- ai 368 -- ai
374 -- ^ K f = id lim 369 -- ^ K f = id lim
375 -- | pi lim = K i -----------→ K j = lim 370 -- | pi lim = K i -----------→ K j = lim
376 -- | | | 371 -- | | |
377 -- p | | 372 -- p | |
378 -- ^ ε i | | ε j 373 -- ^ proj i o e = ε i | | ε j = proj j o e
379 -- | | | 374 -- | | |
380 -- | e = equalizer (id p) (id p) | | 375 -- | e = equalizer (id p) (id p) | |
381 -- | v v 376 -- | v v
382 -- lim <------------------ d' a i = Γ i -----------→ Γ j = a j 377 -- lim <------------------ d' a i = Γ i -----------→ Γ j = a j
383 -- k ( product pi ) Γ f 378 -- k ( product pi ) Γ f
384 -- Γ f o ε i = ε j 379 -- Γ f o ε i = ε j
385 -- 380 --
386 --
387
388 -- pi-ε -- : ( prod : (p : Obj A) ( ai : Obj I → Obj A ) ( pi : (i : Obj I) → Hom A p ( ai i ) )
389 -- → IProduct {c₁'} A (Obj I) p ai pi )
390 -- ( lim p : Obj A ) ( e : Hom A lim p )
391 -- ( proj : (i : Obj I ) → Hom A p (FObj Γ i) ) →
392 -- { i : Obj I } → { q : ( i : Obj I ) → Hom A p (FObj Γ i) } → A [ proj i ≈ q i ]
393 -- pi-ε prod lim p e proj {i} {q} = let open ≈-Reasoning (A) in begin
394 -- proj i
395 -- ≈↑⟨ idR ⟩
396 -- proj i o id1 A p
397 -- ≈⟨ cdr {!!} ⟩
398 -- proj i o product (prod p (FObj Γ) proj) q
399 -- ≈⟨ pif=q (prod p (FObj Γ) proj) q ⟩
400 -- q i
401 -- ∎
402
403 381
404 limit-ε : 382 limit-ε :
405 ( prod : (p : Obj A) ( ai : Obj I → Obj A ) ( pi : (i : Obj I) → Hom A p ( ai i ) ) 383 ( eqa : {a b c : Obj A} → (e : Hom A c a ) → (f g : Hom A a b) → Equalizer A e f g )
406 → IProduct {c₁'} A (Obj I) p ai pi )
407 ( lim p : Obj A ) ( e : Hom A lim p ) 384 ( lim p : Obj A ) ( e : Hom A lim p )
408 ( proj : (i : Obj I ) → Hom A p (FObj Γ i) ) → 385 ( proj : (i : Obj I ) → Hom A p (FObj Γ i) ) →
409 NTrans I A (K A I lim) Γ 386 NTrans I A (K A I lim) Γ
410 limit-ε prod lim p e proj = record { 387 limit-ε eqa lim p e proj = record {
411 TMap = tmap ; 388 TMap = tmap ;
412 isNTrans = record { 389 isNTrans = record { commute = commute1 }
413 commute = commute1
414 }
415 } where 390 } where
416 tmap : (i : Obj I) → Hom A (FObj (K A I lim) i) (FObj Γ i) 391 tmap : (i : Obj I) → Hom A (FObj (K A I lim) i) (FObj Γ i)
417 tmap i = A [ proj i o e ] 392 tmap i = A [ proj i o e ]
418 commute1 : {i j : Obj I} {f : Hom I i j} → 393 commute1 : {i j : Obj I} {f : Hom I i j} →
419 A [ A [ FMap Γ f o tmap i ] ≈ A [ tmap j o FMap (K A I lim) f ] ] 394 A [ A [ FMap Γ f o tmap i ] ≈ A [ tmap j o FMap (K A I lim) f ] ]
421 FMap Γ f o tmap i 396 FMap Γ f o tmap i
422 ≈⟨⟩ 397 ≈⟨⟩
423 FMap Γ f o ( proj i o e ) 398 FMap Γ f o ( proj i o e )
424 ≈⟨ assoc ⟩ 399 ≈⟨ assoc ⟩
425 ( FMap Γ f o proj i ) o e 400 ( FMap Γ f o proj i ) o e
426 ≈↑⟨ car ( pif=q1 ( prod p (FObj Γ) proj ) {j} ) ⟩ 401 ≈⟨ fe=ge ( eqa e (FMap Γ f o proj i) ( proj j )) ⟩
427 proj j o e 402 proj j o e
428 ≈↑⟨ idR ⟩ 403 ≈↑⟨ idR ⟩
429 (proj j o e ) o id1 A lim 404 (proj j o e ) o id1 A lim
430 ≈⟨⟩ 405 ≈⟨⟩
431 tmap j o FMap (K A I lim) f 406 tmap j o FMap (K A I lim) f
436 → IProduct {c₁'} A (Obj I) p ai pi ) 411 → IProduct {c₁'} A (Obj I) p ai pi )
437 ( eqa : {a b c : Obj A} → (e : Hom A c a ) → (f g : Hom A a b) → Equalizer A e f g ) 412 ( eqa : {a b c : Obj A} → (e : Hom A c a ) → (f g : Hom A a b) → Equalizer A e f g )
438 ( lim p : Obj A ) -- limit to be made 413 ( lim p : Obj A ) -- limit to be made
439 ( e : Hom A lim p ) -- existing of equalizer 414 ( e : Hom A lim p ) -- existing of equalizer
440 ( proj : (i : Obj I ) → Hom A p (FObj Γ i) ) -- existing of product ( projection actually ) 415 ( proj : (i : Obj I ) → Hom A p (FObj Γ i) ) -- existing of product ( projection actually )
441 → Limit A I Γ lim ( limit-ε prod lim p e proj ) 416 → Limit A I Γ lim ( limit-ε eqa lim p e proj )
442 limit-from prod eqa lim p e proj = record { 417 limit-from prod eqa lim p e proj = record {
443 limit = λ a t → limit1 a t ; 418 limit = λ a t → limit1 a t ;
444 t0f=t = λ {a t i } → t0f=t1 {a} {t} {i} ; 419 t0f=t = λ {a t i } → t0f=t1 {a} {t} {i} ;
445 limit-uniqueness = λ {a} {t} {f} t=f → limit-uniqueness1 {a} {t} {f} t=f 420 limit-uniqueness = λ {a} {t} {f} t=f → limit-uniqueness1 {a} {t} {f} t=f
446 } where 421 } where
447 limit1 : (a : Obj A) → NTrans I A (K A I a) Γ → Hom A a lim 422 limit1 : (a : Obj A) → NTrans I A (K A I a) Γ → Hom A a lim
448 limit1 a t = let open ≈-Reasoning (A) in k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom 423 limit1 a t = let open ≈-Reasoning (A) in k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom
449 t0f=t1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {i : Obj I} → 424 t0f=t1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {i : Obj I} →
450 A [ A [ TMap (limit-ε prod lim p e proj ) i o limit1 a t ] ≈ TMap t i ] 425 A [ A [ TMap (limit-ε eqa lim p e proj ) i o limit1 a t ] ≈ TMap t i ]
451 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin 426 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin
452 TMap (limit-ε prod lim p e proj ) i o limit1 a t 427 TMap (limit-ε eqa lim p e proj ) i o limit1 a t
453 ≈⟨⟩ 428 ≈⟨⟩
454 ( ( proj i ) o e ) o k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom 429 ( ( proj i ) o e ) o k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom
455 ≈↑⟨ assoc ⟩ 430 ≈↑⟨ assoc ⟩
456 proj i o ( e o k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom ) 431 proj i o ( e o k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom )
457 ≈⟨ cdr ( ek=h ( eqa e (id1 A p) (id1 A p ) ) ) ⟩ 432 ≈⟨ cdr ( ek=h ( eqa e (id1 A p) (id1 A p ) ) ) ⟩
458 proj i o product (prod p (FObj Γ) proj) (TMap t) 433 proj i o product (prod p (FObj Γ) proj) (TMap t)
459 ≈⟨ pif=q (prod p (FObj Γ) proj) (TMap t) ⟩ 434 ≈⟨ pif=q (prod p (FObj Γ) proj) (TMap t) ⟩
460 TMap t i 435 TMap t i
461 436
462 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {f : Hom A a lim} 437 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {f : Hom A a lim}
463 → ({i : Obj I} → A [ A [ TMap (limit-ε prod lim p e proj ) i o f ] ≈ TMap t i ]) → 438 → ({i : Obj I} → A [ A [ TMap (limit-ε eqa lim p e proj ) i o f ] ≈ TMap t i ]) →
464 A [ limit1 a t ≈ f ] 439 A [ limit1 a t ≈ f ]
465 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin 440 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin
466 limit1 a t 441 limit1 a t
467 ≈⟨⟩ 442 ≈⟨⟩
468 k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom 443 k (eqa e (id1 A p) (id1 A p )) (product ( prod p (FObj Γ) proj ) (TMap t) ) refl-hom