comparison nat.agda @ 95:4be27d290ea2

nat-μ
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 29 Jul 2013 14:08:45 +0900
parents 4fa718e4fd77
children 85425bd12835
comparison
equal deleted inserted replaced
94:4fa718e4fd77 95:4be27d290ea2
479 isNTrans1 = record { naturality = naturality1 } 479 isNTrans1 = record { naturality = naturality1 }
480 480
481 -- 481 --
482 -- μ = U_T ε U_F 482 -- μ = U_T ε U_F
483 -- 483 --
484 Lemma12 : {x : Obj A } -> A [ TMap μ x ≈ FMap U_T ( TMap nat-ε ( FObj F_T x ) ) ] 484 tmap-μ : (a : Obj A) -> Hom A (FObj ( U_T ○ F_T ) (FObj ( U_T ○ F_T ) a)) (FObj ( U_T ○ F_T ) a)
485 tmap-μ a = FMap U_T ( TMap nat-ε ( FObj F_T a ))
486
487 nat-μ : NTrans A A (( U_T ○ F_T ) ○ ( U_T ○ F_T )) ( U_T ○ F_T )
488 nat-μ = record { TMap = tmap-μ ; isNTrans = isNTrans1 } where
489 naturality1 : {a b : Obj A} {f : Hom A a b}
490 → A [ A [ (FMap (U_T ○ F_T) f) o ( tmap-μ a) ] ≈ A [ ( tmap-μ b ) o FMap (U_T ○ F_T) ( FMap (U_T ○ F_T) f) ] ]
491 naturality1 {a} {b} {f} = let open ≈-Reasoning (A) in
492 sym ( begin
493 ( tmap-μ b ) o FMap (U_T ○ F_T) ( FMap (U_T ○ F_T) f)
494 ≈⟨⟩
495 ( FMap U_T ( TMap nat-ε ( FObj F_T b )) ) o FMap (U_T ○ F_T) ( FMap (U_T ○ F_T) f)
496 ≈⟨ sym ( distr U_T) ⟩
497 FMap U_T ( KleisliCategory [ TMap nat-ε ( FObj F_T b ) o FMap F_T ( FMap (U_T ○ F_T) f) ] )
498 ≈⟨ fcong U_T (sym (nat nat-ε)) ⟩
499 FMap U_T ( KleisliCategory [ (FMap F_T f) o TMap nat-ε ( FObj F_T a ) ] )
500 ≈⟨ distr U_T ⟩
501 (FMap U_T (FMap F_T f)) o FMap U_T ( TMap nat-ε ( FObj F_T a ))
502 ≈⟨⟩
503 (FMap (U_T ○ F_T) f) o ( tmap-μ a)
504 ∎ )
505 isNTrans1 : IsNTrans A A (( U_T ○ F_T ) ○ ( U_T ○ F_T )) ( U_T ○ F_T ) tmap-μ
506 isNTrans1 = record { naturality = naturality1 }
507
508 Lemma12 : {x : Obj A } -> A [ TMap nat-μ x ≈ FMap U_T ( TMap nat-ε ( FObj F_T x ) ) ]
485 Lemma12 {x} = let open ≈-Reasoning (A) in 509 Lemma12 {x} = let open ≈-Reasoning (A) in
510 sym ( begin
511 FMap U_T ( TMap nat-ε ( FObj F_T x ) )
512 ≈⟨⟩
513 tmap-μ x
514 ≈⟨⟩
515 TMap nat-μ x
516 ∎ )
517
518 Lemma13 : {x : Obj A } -> A [ TMap μ x ≈ FMap U_T ( TMap nat-ε ( FObj F_T x ) ) ]
519 Lemma13 {x} = let open ≈-Reasoning (A) in
486 sym ( begin 520 sym ( begin
487 FMap U_T ( TMap nat-ε ( FObj F_T x ) ) 521 FMap U_T ( TMap nat-ε ( FObj F_T x ) )
488 ≈⟨⟩ 522 ≈⟨⟩
489 TMap μ x o FMap T (id1 A (FObj T x) ) 523 TMap μ x o FMap T (id1 A (FObj T x) )
490 ≈⟨ cdr (IsFunctor.identity (isFunctor T)) ⟩ 524 ≈⟨ cdr (IsFunctor.identity (isFunctor T)) ⟩
491 TMap μ x o id1 A (FObj T (FObj T x) ) 525 TMap μ x o id1 A (FObj T (FObj T x) )
492 ≈⟨ idR ⟩ 526 ≈⟨ idR ⟩
493 TMap μ x 527 TMap μ x
494 ∎ ) 528 ∎ )
495
496 529
497 Adj_T : Adjunction A KleisliCategory U_T F_T nat-η nat-ε 530 Adj_T : Adjunction A KleisliCategory U_T F_T nat-η nat-ε
498 Adj_T = record { 531 Adj_T = record {
499 isAdjunction = record { 532 isAdjunction = record {
500 adjoint1 = adjoint1 ; 533 adjoint1 = adjoint1 ;
539 KMap (id1 KleisliCategory (FObj F_T a)) 572 KMap (id1 KleisliCategory (FObj F_T a))
540 573
541 574
542 open MResolution 575 open MResolution
543 576
544 Resolution_T : MResolution A KleisliCategory T U_T F_T Adj_T 577 Resolution_T : MResolution A KleisliCategory T U_T F_T {nat-η} {nat-ε} {nat-μ} Adj_T
545 Resolution_T = record { 578 Resolution_T = record {
546 T=UF = Lemma11; 579 T=UF = Lemma11;
547 μ=UεF = Lemma12 580 μ=UεF = Lemma12
548 } 581 }
549 582