equal
deleted
inserted
replaced
120 by (induct xs) simp_all |
120 by (induct xs) simp_all |
121 |
121 |
122 |
122 |
123 subsection {* Trees *} |
123 subsection {* Trees *} |
124 |
124 |
125 datatype_new 'a tree = Twig | Leaf 'a | Branch "'a tree" "'a tree" |
125 datatype 'a tree = Twig | Leaf 'a | Branch "'a tree" "'a tree" |
126 |
126 |
127 primrec leaves :: "'a tree \<Rightarrow> 'a list" where |
127 primrec leaves :: "'a tree \<Rightarrow> 'a list" where |
128 "leaves Twig = []" |
128 "leaves Twig = []" |
129 | "leaves (Leaf a) = [a]" |
129 | "leaves (Leaf a) = [a]" |
130 | "leaves (Branch l r) = (leaves l) @ (leaves r)" |
130 | "leaves (Branch l r) = (leaves l) @ (leaves r)" |
148 quickcheck[random, expect = counterexample] |
148 quickcheck[random, expect = counterexample] |
149 quickcheck[exhaustive, expect = counterexample] |
149 quickcheck[exhaustive, expect = counterexample] |
150 --{* Wrong! *} |
150 --{* Wrong! *} |
151 oops |
151 oops |
152 |
152 |
153 datatype_new 'a ntree = Tip "'a" | Node "'a" "'a ntree" "'a ntree" |
153 datatype 'a ntree = Tip "'a" | Node "'a" "'a ntree" "'a ntree" |
154 |
154 |
155 primrec inOrder :: "'a ntree \<Rightarrow> 'a list" where |
155 primrec inOrder :: "'a ntree \<Rightarrow> 'a list" where |
156 "inOrder (Tip a)= [a]" |
156 "inOrder (Tip a)= [a]" |
157 | "inOrder (Node f x y) = (inOrder x)@[f]@(inOrder y)" |
157 | "inOrder (Node f x y) = (inOrder x)@[f]@(inOrder y)" |
158 |
158 |
437 "xpos r = xpos r' ==> r = r'" |
437 "xpos r = xpos r' ==> r = r'" |
438 quickcheck[exhaustive, expect = counterexample] |
438 quickcheck[exhaustive, expect = counterexample] |
439 quickcheck[random, expect = counterexample] |
439 quickcheck[random, expect = counterexample] |
440 oops |
440 oops |
441 |
441 |
442 datatype_new colour = Red | Green | Blue |
442 datatype colour = Red | Green | Blue |
443 |
443 |
444 record cpoint = point + |
444 record cpoint = point + |
445 colour :: colour |
445 colour :: colour |
446 |
446 |
447 lemma |
447 lemma |