Mercurial > hg > Members > atton > similar_monad
changeset 25:a5aadebc084d
Define List in Agda
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 07 Oct 2014 10:38:57 +0900 |
parents | ae41becf41db |
children | 5ba82f107a95 |
files | agda/list.agda |
diffstat | 1 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/agda/list.agda Tue Oct 07 10:38:57 2014 +0900 @@ -0,0 +1,24 @@ +module list where + +open import Relation.Binary.PropositionalEquality +open ≡-Reasoning + +infixr 40 _::_ +data List (A : Set) : Set where + [] : List A + _::_ : A -> List A -> List A + + +infixl 30 _++_ +_++_ : {A : Set} -> List A -> List A -> List A +[] ++ ys = ys +(x :: xs) ++ ys = x :: (xs ++ ys) + + +empty-append : {A : Set} -> (xs : List A) -> xs ++ [] ≡ [] ++ xs +empty-append [] = refl +empty-append (x :: xs) = begin + x :: (xs ++ []) + ≡⟨ cong (_::_ x) (empty-append xs) ⟩ + x :: xs + ∎ \ No newline at end of file