| author | kleing | 
| Fri, 29 Apr 2005 13:12:38 +0200 | |
| changeset 15887 | 7dee3396d8b0 | 
| 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 |