author | kleing |
Tue, 09 Mar 2004 04:22:50 +0100 | |
changeset 14448 | ba25d002a59c |
parent 13439 | 2f98365f57a8 |
child 16417 | 9bc16273c2d4 |
permissions | -rw-r--r-- |
13262 | 1 |
theory FP0 = PreList: |
2 |
||
3 |
datatype 'a list = Nil ("[]") |
|
4 |
| Cons 'a "'a list" (infixr "#" 65) |
|
5 |
||
6 |
consts app :: "'a list \<Rightarrow> 'a list \<Rightarrow> 'a list" (infixr "@" 65) |
|
7 |
rev :: "'a list \<Rightarrow> 'a list" |
|
8 |
||
9 |
primrec |
|
10 |
"[] @ ys = ys" |
|
11 |
"(x # xs) @ ys = x # (xs @ ys)" |
|
12 |
||
13 |
primrec |
|
14 |
"rev [] = []" |
|
15 |
"rev (x # xs) = (rev xs) @ (x # [])" |
|
16 |
||
17 |
theorem rev_rev [simp]: "rev(rev xs) = xs" |
|
13439 | 18 |
(*<*)oops(*>*)text_raw{*\isanewline\isanewline*} |
13262 | 19 |
|
20 |
end |