Mercurial > hg > Members > atton > delta_monad
view agda/list.agda @ 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 | |
children | 5ba82f107a95 |
line wrap: on
line source
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 ∎