Mercurial > hg > Members > atton > delta_monad
diff agda/delta/functor.agda @ 131:d205ff1e406f InfiniteDeltaWithMonad
Cleanup proofs
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 03 Feb 2015 12:57:13 +0900 |
parents | 5902b2a24abf |
children |
line wrap: on
line diff
--- a/agda/delta/functor.agda Tue Feb 03 12:46:20 2015 +0900 +++ b/agda/delta/functor.agda Tue Feb 03 12:57:13 2015 +0900 @@ -11,20 +11,21 @@ -- Functor-laws --- Functor-law-1 : T(id) = id' -functor-law-1 : {l : Level} {A : Set l} {n : Nat} -> (d : Delta A (S n)) -> (delta-fmap id) d ≡ id d -functor-law-1 (mono x) = refl -functor-law-1 (delta x d) = cong (delta x) (functor-law-1 d) +-- functor-law 1 : T(id) = id' +delta-preserve-id : {l : Level} {A : Set l} {n : Nat} -> (d : Delta A (S n)) -> (delta-fmap id) d ≡ id d +delta-preserve-id (mono x) = refl +delta-preserve-id (delta x d) = cong (delta x) (delta-preserve-id d) --- Functor-law-2 : T(f . g) = T(f) . T(g) -functor-law-2 : {l : Level} {n : Nat} {A B C : Set l} -> + +-- functor-law 2 : T(f . g) = T(f) . T(g) +delta-covariant : {l : Level} {n : Nat} {A B C : Set l} -> (f : B -> C) -> (g : A -> B) -> (d : Delta A (S n)) -> (delta-fmap (f ∙ g)) d ≡ ((delta-fmap f) ∙ (delta-fmap g)) d -functor-law-2 f g (mono x) = refl -functor-law-2 f g (delta x d) = cong (delta (f (g x))) (functor-law-2 f g d) +delta-covariant f g (mono x) = refl +delta-covariant f g (delta x d) = cong (delta (f (g x))) (delta-covariant f g d) -delta-fmap-equiv : {l : Level} {A B : Set l} {n : Nat} {f g : A -> B} +delta-fmap-equiv : {l : Level} {A B : Set l} {n : Nat} {f g : A -> B} (eq : (x : A) -> f x ≡ g x) -> (d : Delta A (S n)) -> delta-fmap f d ≡ delta-fmap g d delta-fmap-equiv {l} {A} {B} {O} {f} {g} eq (mono x) = begin @@ -41,7 +42,7 @@ delta-is-functor : {l : Level} {n : Nat} -> Functor {l} (\A -> Delta A (S n)) delta-is-functor = record { fmap = delta-fmap - ;preserve-id = functor-law-1 - ; covariant = \f g -> functor-law-2 g f + ; preserve-id = delta-preserve-id + ; covariant = \f g -> delta-covariant g f ; fmap-equiv = delta-fmap-equiv }