comparison pullback.agda @ 683:88e8a1290dc4

clean up
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 08 Nov 2017 00:05:50 +0900
parents 50a01df1169a
children 5d9d7c2f2718
comparison
equal deleted inserted replaced
682:50a01df1169a 683:88e8a1290dc4
27 -- k (π1' × π2' ) 27 -- k (π1' × π2' )
28 28
29 open Equalizer 29 open Equalizer
30 open IsEqualizer 30 open IsEqualizer
31 open IsProduct 31 open IsProduct
32
33 -- ( A [ π1 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] )
34 -- ( A [ π2 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] )
35 32
36 pullback-from : {a b c : Obj A} 33 pullback-from : {a b c : Obj A}
37 ( f : Hom A a c ) ( g : Hom A b c ) 34 ( f : Hom A a c ) ( g : Hom A b c )
38 ( eqa : {a b : Obj A} → (f g : Hom A a b) → Equalizer A f g ) 35 ( eqa : {a b : Obj A} → (f g : Hom A a b) → Equalizer A f g )
39 ( prod : ( a b : Obj A ) → Product A a b ) → Pullback A f g 36 ( prod : ( a b : Obj A ) → Product A a b ) → Pullback A f g
379 d : Obj A 376 d : Obj A
380 d = equalizer-c equ-ε 377 d = equalizer-c equ-ε
381 e : Hom A d p0 378 e : Hom A d p0
382 e = equalizer equ-ε 379 e = equalizer equ-ε
383 equ = isEqualizer equ-ε 380 equ = isEqualizer equ-ε
381 -- projection of the product of Obj I
384 proj : (i : Obj I) → Hom A p0 (FObj Γ i) 382 proj : (i : Obj I) → Hom A p0 (FObj Γ i)
385 proj = pi ( prod (FObj Γ) ) 383 proj = pi ( prod (FObj Γ) )
386 prodΓ = isIProduct ( prod (FObj Γ) ) 384 prodΓ = isIProduct ( prod (FObj Γ) )
385 -- projection of the product of Hom I
387 mu : {j k : Obj I} → (u : Hom I j k ) → Hom A (iprod (prod Fcod)) (Fcod (Homprod u)) 386 mu : {j k : Obj I} → (u : Hom I j k ) → Hom A (iprod (prod Fcod)) (Fcod (Homprod u))
388 mu u = pi (prod Fcod ) (Homprod u) 387 mu u = pi (prod Fcod ) (Homprod u)
389 limit-ε : NTrans I A (K A I (equalizer-c equ-ε ) ) Γ 388 limit-ε : NTrans I A (K A I (equalizer-c equ-ε ) ) Γ
390 limit-ε = record { 389 limit-ε = record {
391 TMap = λ i → tmap i ; 390 TMap = λ i → tmap i ;
416 ≈↑⟨ idR ⟩ 415 ≈↑⟨ idR ⟩
417 (proj k o e ) o id1 A d 416 (proj k o e ) o id1 A d
418 ≈⟨⟩ 417 ≈⟨⟩
419 tmap k o FMap (K A I d) u 418 tmap k o FMap (K A I d) u
420 419
420 -- an arrow to our product of Obj I ( is an equalizer because of commutativity of t )
421 h : {a : Obj A} → (t : NTrans I A (K A I a) Γ ) → Hom A a p0
422 h t = iproduct prodΓ (TMap t)
421 fh=gh : (a : Obj A) → (t : NTrans I A (K A I a) Γ ) → 423 fh=gh : (a : Obj A) → (t : NTrans I A (K A I a) Γ ) →
422 A [ A [ g o iproduct prodΓ (TMap t) ] ≈ A [ f o iproduct prodΓ (TMap t) ] ] 424 A [ A [ g o h t ] ≈ A [ f o h t ] ]
423 fh=gh a t = let open ≈-Reasoning (A) in begin 425 fh=gh a t = let open ≈-Reasoning (A) in begin
424 g o iproduct prodΓ (TMap t) 426 g o h t
425 ≈↑⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩ 427 ≈↑⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩
426 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( g o iproduct prodΓ (TMap t) )) 428 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( g o h t ))
427 ≈⟨ ip-cong (isIProduct (prod Fcod)) ( λ u → begin 429 ≈⟨ ip-cong (isIProduct (prod Fcod)) ( λ u → begin
428 pi (prod Fcod) u o ( g o iproduct prodΓ (TMap t) ) 430 pi (prod Fcod) u o ( g o h t )
429 ≈⟨ assoc ⟩ 431 ≈⟨ assoc ⟩
430 ( pi (prod Fcod) u o g ) o iproduct prodΓ (TMap t) 432 ( pi (prod Fcod) u o g ) o h t
431 ≈⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩ 433 ≈⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩
432 (FMap Γ (hom u) o pi (prod (FObj Γ)) (hom-j u) ) o iproduct prodΓ (TMap t) 434 (FMap Γ (hom u) o pi (prod (FObj Γ)) (hom-j u) ) o h t
433 ≈↑⟨ assoc ⟩ 435 ≈↑⟨ assoc ⟩
434 FMap Γ (hom u) o (pi (prod (FObj Γ)) (hom-j u) o iproduct prodΓ (TMap t) ) 436 FMap Γ (hom u) o (pi (prod (FObj Γ)) (hom-j u) o h t )
435 ≈⟨ cdr ( pif=q prodΓ ) ⟩ 437 ≈⟨ cdr ( pif=q prodΓ ) ⟩
436 FMap Γ (hom u) o TMap t (hom-j u) 438 FMap Γ (hom u) o TMap t (hom-j u)
437 ≈⟨ IsNTrans.commute (isNTrans t) ⟩ 439 ≈⟨ IsNTrans.commute (isNTrans t) ⟩
438 TMap t (hom-k u) o id1 A a 440 TMap t (hom-k u) o id1 A a
439 ≈⟨ idR ⟩ 441 ≈⟨ idR ⟩
440 TMap t (hom-k u) 442 TMap t (hom-k u)
441 ≈↑⟨ pif=q prodΓ ⟩ 443 ≈↑⟨ pif=q prodΓ ⟩
442 pi (prod (FObj Γ)) (hom-k u) o iproduct prodΓ (TMap t) 444 pi (prod (FObj Γ)) (hom-k u) o h t
443 ≈↑⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩ 445 ≈↑⟨ car (pif=q (isIProduct (prod Fcod ))) ⟩
444 (pi (prod Fcod) u o f ) o iproduct prodΓ (TMap t) 446 (pi (prod Fcod) u o f ) o h t
445 ≈↑⟨ assoc ⟩ 447 ≈↑⟨ assoc ⟩
446 pi (prod Fcod) u o ( f o iproduct prodΓ (TMap t) ) 448 pi (prod Fcod) u o ( f o h t )
447 449
448 ) ⟩ 450 ) ⟩
449 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( f o iproduct prodΓ (TMap t)) ) 451 iproduct (isIProduct (prod Fcod)) (λ u → pi (prod Fcod) u o ( f o h t ))
450 ≈⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩ 452 ≈⟨ ip-uniqueness (isIProduct (prod Fcod)) ⟩
451 f o iproduct prodΓ (TMap t) 453 f o h t
452 454
453 limit1 : (a : Obj A) → NTrans I A (K A I a) Γ → Hom A a d 455 limit1 : (a : Obj A) → NTrans I A (K A I a) Γ → Hom A a d
454 limit1 a t = k equ (iproduct prodΓ (TMap t) ) ( fh=gh a t ) 456 limit1 a t = k equ (h t) ( fh=gh a t )
455 t0f=t1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {i : Obj I} → 457 t0f=t1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {i : Obj I} →
456 A [ A [ TMap limit-ε i o limit1 a t ] ≈ TMap t i ] 458 A [ A [ TMap limit-ε i o limit1 a t ] ≈ TMap t i ]
457 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin 459 t0f=t1 {a} {t} {i} = let open ≈-Reasoning (A) in begin
458 TMap limit-ε i o limit1 a t 460 TMap limit-ε i o limit1 a t
459 ≈⟨⟩ 461 ≈⟨⟩
460 ( ( proj i ) o e ) o k equ (iproduct prodΓ (TMap t) ) (fh=gh a t) 462 ( ( proj i ) o e ) o k equ (h t) (fh=gh a t)
461 ≈↑⟨ assoc ⟩ 463 ≈↑⟨ assoc ⟩
462 proj i o ( e o k equ (iproduct prodΓ (TMap t) ) (fh=gh a t ) ) 464 proj i o ( e o k equ (h t) (fh=gh a t ) )
463 ≈⟨ cdr ( ek=h equ) ⟩ 465 ≈⟨ cdr ( ek=h equ) ⟩
464 proj i o iproduct prodΓ (TMap t) 466 proj i o h t
465 ≈⟨ pif=q prodΓ ⟩ 467 ≈⟨ pif=q prodΓ ⟩
466 TMap t i 468 TMap t i
467 469
468 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {f : Hom A a d} 470 limit-uniqueness1 : {a : Obj A} {t : NTrans I A (K A I a) Γ} {f : Hom A a d}
469 → ({i : Obj I} → A [ A [ TMap limit-ε i o f ] ≈ TMap t i ]) → 471 → ({i : Obj I} → A [ A [ TMap limit-ε i o f ] ≈ TMap t i ]) →
470 A [ limit1 a t ≈ f ] 472 A [ limit1 a t ≈ f ]
471 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin 473 limit-uniqueness1 {a} {t} {f} lim=t = let open ≈-Reasoning (A) in begin
472 limit1 a t 474 limit1 a t
473 ≈⟨⟩ 475 ≈⟨⟩
474 k equ (iproduct prodΓ (TMap t) ) (fh=gh a t) 476 k equ (h t) (fh=gh a t)
475 ≈⟨ IsEqualizer.uniqueness equ ( begin 477 ≈⟨ IsEqualizer.uniqueness equ ( begin
476 e o f 478 e o f
477 ≈↑⟨ ip-uniqueness prodΓ ⟩ 479 ≈↑⟨ ip-uniqueness prodΓ ⟩
478 iproduct prodΓ (λ i → ( proj i o ( e o f ) ) ) 480 iproduct prodΓ (λ i → ( proj i o ( e o f ) ) )
479 ≈⟨ ip-cong prodΓ ( λ i → begin 481 ≈⟨ ip-cong prodΓ ( λ i → begin
481 ≈⟨ assoc ⟩ 483 ≈⟨ assoc ⟩
482 ( proj i o e ) o f 484 ( proj i o e ) o f
483 ≈⟨ lim=t {i} ⟩ 485 ≈⟨ lim=t {i} ⟩
484 TMap t i 486 TMap t i
485 ∎ ) ⟩ 487 ∎ ) ⟩
486 iproduct prodΓ (TMap t) 488 h t
487 ∎ ) ⟩ 489 ∎ ) ⟩
488 f 490 f
489 491
490 492
491 493