diff -r 2c27248bf267 -r af3923ed4786 src/HOL/ex/Random.thy --- a/src/HOL/ex/Random.thy Fri Sep 05 11:50:35 2008 +0200 +++ b/src/HOL/ex/Random.thy Sat Sep 06 14:02:36 2008 +0200 @@ -55,18 +55,6 @@ "(if b then f x else f y) = f (if b then x else y)" by (cases b) simp_all -(*lemma seed_invariant: - assumes "seed_invariant (index_of_nat v, index_of_nat w)" - and "(index_of_nat z, (index_of_nat v', index_of_nat w')) = next (index_of_nat v, index_of_nat w)" - shows "seed_invariant (index_of_nat v', index_of_nat w')" -using assms -apply (auto simp add: seed_invariant_def) -apply (auto simp add: minus_shift_def Let_def) -apply (simp_all add: if_same cong del: if_cong) -apply safe -unfolding not_less -oops*) - definition split_seed :: "seed \ seed \ seed" where @@ -109,7 +97,7 @@ "range_aux (log 2147483561 k) 1 s = (v, w)" by (cases "range_aux (log 2147483561 k) 1 s") with assms show ?thesis - by (simp add: range_def run_def scomp_def split_def del: range_aux.simps log.simps) + by (simp add: monad_collapse range_def del: range_aux.simps log.simps) qed definition @@ -130,7 +118,7 @@ then have "nat_of_index (fst (range (index_of_nat (length xs)) s)) < length xs" by simp then show ?thesis - by (auto simp add: select_def run_def scomp_def split_def) + by (auto simp add: monad_collapse select_def) qed definition @@ -143,7 +131,7 @@ lemma select_default_zero: "fst (select_default 0 x y s) = y" - by (simp add: run_def scomp_def split_def select_default_def) + by (simp add: monad_collapse select_default_def) lemma select_default_code [code]: "select_default k x y = (if k = 0 then do @@ -157,7 +145,7 @@ case False then show ?thesis by (simp add: select_default_def) next case True then show ?thesis - by (simp add: run_def scomp_def split_def select_default_def expand_fun_eq range_def) + by (simp add: monad_collapse select_default_def range_def) qed @@ -192,3 +180,4 @@ *} end +