Mercurial > hg > Members > kono > Proof > category
diff nat.agda @ 130:5f331dfc000b
remove Kleisli record
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Aug 2013 22:05:41 +0900 |
parents | e763efd30868 |
children |
line wrap: on
line diff
--- a/nat.agda Sat Aug 03 10:12:00 2013 +0900 +++ b/nat.agda Thu Aug 08 22:05:41 2013 +0900 @@ -24,9 +24,7 @@ { T : Functor A A } { η : NTrans A A identityFunctor T } { μ : NTrans A A (T ○ T) T } - { M : Monad A T η μ } - { K : Kleisli A T η μ M } where - + { M : Monad A T η μ } where --T(g f) = T(g) T(f) @@ -40,7 +38,7 @@ Lemma2 : {c₁ c₂ l : Level} {A : Category c₁ c₂ l} {F G : Functor A A} → (μ : NTrans A A F G) → {a b : Obj A} { f : Hom A a b } → A [ A [ FMap G f o TMap μ a ] ≈ A [ TMap μ b o FMap F f ] ] -Lemma2 = \n → IsNTrans.naturality ( isNTrans n ) +Lemma2 = \n → IsNTrans.commute ( isNTrans n ) -- Laws of Monad -- @@ -92,19 +90,18 @@ -- f ○ η(a) = f -- right id (Lemma8) -- h ○ (g ○ f) = (h ○ g) ○ f -- assocation law (Lemma9) -open Kleisli -- η(b) ○ f = f Lemma7 : { a : Obj A } { b : Obj A } ( f : Hom A a ( FObj T b) ) - → A [ join K (TMap η b) f ≈ f ] + → A [ join M (TMap η b) f ≈ f ] Lemma7 {_} {b} f = let open ≈-Reasoning (A) in begin - join K (TMap η b) f + join M (TMap η b) f ≈⟨ refl-hom ⟩ A [ TMap μ b o A [ FMap T ((TMap η b)) o f ] ] ≈⟨ IsCategory.associative (Category.isCategory A) ⟩ A [ A [ TMap μ b o FMap T ((TMap η b)) ] o f ] - ≈⟨ car ( IsMonad.unity2 ( isMonad ( monad K )) ) ⟩ + ≈⟨ car ( IsMonad.unity2 ( isMonad M) ) ⟩ A [ id (FObj T b) o f ] ≈⟨ IsCategory.identityL (Category.isCategory A) ⟩ f @@ -113,17 +110,17 @@ -- f ○ η(a) = f Lemma8 : { a : Obj A } { b : Obj A } ( f : Hom A a ( FObj T b) ) - → A [ join K f (TMap η a) ≈ f ] + → A [ join M f (TMap η a) ≈ f ] Lemma8 {a} {b} f = begin - join K f (TMap η a) + join M f (TMap η a) ≈⟨ refl-hom ⟩ A [ TMap μ b o A [ FMap T f o (TMap η a) ] ] ≈⟨ cdr ( nat η ) ⟩ A [ TMap μ b o A [ (TMap η ( FObj T b)) o f ] ] ≈⟨ IsCategory.associative (Category.isCategory A) ⟩ A [ A [ TMap μ b o (TMap η ( FObj T b)) ] o f ] - ≈⟨ car ( IsMonad.unity1 ( isMonad ( monad K )) ) ⟩ + ≈⟨ car ( IsMonad.unity1 ( isMonad M) ) ⟩ A [ id (FObj T b) o f ] ≈⟨ IsCategory.identityL (Category.isCategory A) ⟩ f @@ -135,12 +132,12 @@ ( h : Hom A c ( FObj T d) ) ( g : Hom A b ( FObj T c) ) ( f : Hom A a ( FObj T b) ) - → A [ join K h (join K g f) ≈ join K ( join K h g) f ] + → A [ join M h (join M g f) ≈ join M ( join M h g) f ] Lemma9 {a} {b} {c} {d} h g f = begin - join K h (join K g f) + join M h (join M g f) ≈⟨⟩ - join K h ( ( TMap μ c o ( FMap T g o f ) ) ) + join M h ( ( TMap μ c o ( FMap T g o f ) ) ) ≈⟨ refl-hom ⟩ ( TMap μ d o ( FMap T h o ( TMap μ c o ( FMap T g o f ) ) ) ) ≈⟨ cdr ( cdr ( assoc )) ⟩ @@ -185,25 +182,25 @@ ≈⟨ cdr ( car ( sym ( distr T ))) ⟩ ( TMap μ d o ( FMap T ( ( ( TMap μ d ) o ( FMap T h o g ) ) ) o f ) ) ≈⟨ refl-hom ⟩ - join K ( ( TMap μ d o ( FMap T h o g ) ) ) f + join M ( ( TMap μ d o ( FMap T h o g ) ) ) f ≈⟨ refl-hom ⟩ - join K ( join K h g) f + join M ( join M h g) f ∎ where open ≈-Reasoning (A) -- -- o-resp in Kleisli Category ( for Functor definitions ) -- Lemma10 : {a b c : Obj A} -> (f g : Hom A a (FObj T b) ) → (h i : Hom A b (FObj T c) ) → - A [ f ≈ g ] → A [ h ≈ i ] → A [ (join K h f) ≈ (join K i g) ] + A [ f ≈ g ] → A [ h ≈ i ] → A [ (join M h f) ≈ (join M i g) ] Lemma10 {a} {b} {c} f g h i eq-fg eq-hi = let open ≈-Reasoning (A) in begin - join K h f + join M h f ≈⟨⟩ TMap μ c o ( FMap T h o f ) ≈⟨ cdr ( IsCategory.o-resp-≈ (Category.isCategory A) eq-fg ((IsFunctor.≈-cong (isFunctor T)) eq-hi )) ⟩ TMap μ c o ( FMap T i o g ) ≈⟨⟩ - join K i g + join M i g ∎ -- @@ -228,7 +225,7 @@ _⋍_ {a} {b} f g = A [ KMap f ≈ KMap g ] _*_ : { a b c : Obj A } → ( KHom b c) → ( KHom a b) → KHom a c -_*_ {a} {b} {c} g f = record { KMap = join K {a} {b} {c} (KMap g) (KMap f) } +_*_ {a} {b} {c} g f = record { KMap = join M {a} {b} {c} (KMap g) (KMap f) } isKleisliCategory : IsCategory ( Obj A ) KHom _⋍_ _*_ K-id isKleisliCategory = record { isEquivalence = isEquivalence @@ -384,7 +381,7 @@ ≈⟨ sym assoc ⟩ TMap μ c o ( (FMap T (TMap η c o g)) o (TMap η b o f) ) ≈⟨⟩ - join K (TMap η c o g) (TMap η b o f) + join M (TMap η c o g) (TMap η b o f) ≈⟨⟩ KMap ( ffmap g * ffmap f ) ∎ @@ -424,9 +421,9 @@ nat-η : NTrans A A identityFunctor ( U_T ○ F_T ) nat-η = record { TMap = \x -> TMap η x ; isNTrans = isNTrans1 } where - naturality1 : {a b : Obj A} {f : Hom A a b} + commute1 : {a b : Obj A} {f : Hom A a b} → A [ A [ ( FMap ( U_T ○ F_T ) f ) o ( TMap η a ) ] ≈ A [ (TMap η b ) o f ] ] - naturality1 {a} {b} {f} = let open ≈-Reasoning (A) in + commute1 {a} {b} {f} = let open ≈-Reasoning (A) in begin ( FMap ( U_T ○ F_T ) f ) o ( TMap η a ) ≈⟨ sym (resp refl-hom (Lemma11-1 f)) ⟩ @@ -435,16 +432,16 @@ TMap η b o f ∎ isNTrans1 : IsNTrans A A identityFunctor ( U_T ○ F_T ) (\a -> TMap η a) - isNTrans1 = record { naturality = naturality1 } + isNTrans1 = record { commute = commute1 } tmap-ε : (a : Obj A) -> KHom (FObj T a) a tmap-ε a = record { KMap = id1 A (FObj T a) } nat-ε : NTrans KleisliCategory KleisliCategory ( F_T ○ U_T ) identityFunctor nat-ε = record { TMap = \a -> tmap-ε a; isNTrans = isNTrans1 } where - naturality1 : {a b : Obj A} {f : KHom a b} + commute1 : {a b : Obj A} {f : KHom a b} → (f * ( tmap-ε a ) ) ⋍ (( tmap-ε b ) * ( FMap (F_T ○ U_T) f ) ) - naturality1 {a} {b} {f} = let open ≈-Reasoning (A) in + commute1 {a} {b} {f} = let open ≈-Reasoning (A) in sym ( begin KMap (( tmap-ε b ) * ( FMap (F_T ○ U_T) f )) ≈⟨⟩ @@ -475,7 +472,7 @@ KMap (f * ( tmap-ε a )) ∎ ) isNTrans1 : IsNTrans KleisliCategory KleisliCategory ( F_T ○ U_T ) identityFunctor (\a -> tmap-ε a ) - isNTrans1 = record { naturality = naturality1 } + isNTrans1 = record { commute = commute1 } -- -- μ = U_T ε U_F @@ -485,9 +482,9 @@ nat-μ : NTrans A A (( U_T ○ F_T ) ○ ( U_T ○ F_T )) ( U_T ○ F_T ) nat-μ = record { TMap = tmap-μ ; isNTrans = isNTrans1 } where - naturality1 : {a b : Obj A} {f : Hom A a b} + commute1 : {a b : Obj A} {f : Hom A a b} → 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) ] ] - naturality1 {a} {b} {f} = let open ≈-Reasoning (A) in + commute1 {a} {b} {f} = let open ≈-Reasoning (A) in sym ( begin ( tmap-μ b ) o FMap (U_T ○ F_T) ( FMap (U_T ○ F_T) f) ≈⟨⟩ @@ -502,7 +499,7 @@ (FMap (U_T ○ F_T) f) o ( tmap-μ a) ∎ ) isNTrans1 : IsNTrans A A (( U_T ○ F_T ) ○ ( U_T ○ F_T )) ( U_T ○ F_T ) tmap-μ - isNTrans1 = record { naturality = naturality1 } + isNTrans1 = record { commute = commute1 } Lemma12 : {x : Obj A } -> A [ TMap nat-μ x ≈ FMap U_T ( TMap nat-ε ( FObj F_T x ) ) ] Lemma12 {x} = let open ≈-Reasoning (A) in