equal
deleted
inserted
replaced
1 theory ToyList = PreList:; |
1 theory ToyList = PreList: |
2 |
2 |
3 datatype 'a list = Nil ("[]") |
3 datatype 'a list = Nil ("[]") |
4 | Cons 'a "'a list" (infixr "#" 65); |
4 | Cons 'a "'a list" (infixr "#" 65) |
5 |
5 |
6 consts app :: "'a list => 'a list => 'a list" (infixr "@" 65) |
6 consts app :: "'a list => 'a list => 'a list" (infixr "@" 65) |
7 rev :: "'a list => 'a list"; |
7 rev :: "'a list => 'a list" |
8 |
8 |
9 primrec |
9 primrec |
10 "[] @ ys = ys" |
10 "[] @ ys = ys" |
11 "(x # xs) @ ys = x # (xs @ ys)"; |
11 "(x # xs) @ ys = x # (xs @ ys)" |
12 |
12 |
13 primrec |
13 primrec |
14 "rev [] = []" |
14 "rev [] = []" |
15 "rev (x # xs) = (rev xs) @ (x # [])"; |
15 "rev (x # xs) = (rev xs) @ (x # [])" |