2015-01-05 01:50:41 +00:00
|
|
|
import data.list
|
|
|
|
open list
|
|
|
|
|
2015-02-26 00:20:44 +00:00
|
|
|
definition append {A : Type} : list A → list A → list A
|
|
|
|
| append nil l := l
|
|
|
|
| append (h :: t) l := h :: (append t l)
|
2015-01-05 01:50:41 +00:00
|
|
|
|
|
|
|
theorem append_nil {A : Type} (l : list A) : append nil l = l :=
|
|
|
|
rfl
|
|
|
|
|
|
|
|
theorem append_cons {A : Type} (h : A) (t l : list A) : append (h :: t) l = h :: (append t l) :=
|
|
|
|
rfl
|
|
|
|
|
2015-10-13 22:39:03 +00:00
|
|
|
example : append ((1:nat) :: 2 :: nil) (3 :: 4 :: 5 :: nil) = (1 :: 2 :: 3 :: 4 :: 5 :: nil) :=
|
2015-01-05 01:50:41 +00:00
|
|
|
rfl
|