diff -r f8a615f3bb31 -r ed657432b8b9 src/HOLCF/Ffun.thy --- a/src/HOLCF/Ffun.thy Thu Mar 27 19:22:24 2008 +0100 +++ b/src/HOLCF/Ffun.thy Thu Mar 27 19:49:24 2008 +0100 @@ -240,21 +240,23 @@ text {* Note @{text "(\x. \y. f x y) = f"} *} -lemma mono2mono_lambda: "(\y. monofun (\x. f x y)) \ monofun f" +lemma mono2mono_lambda: + assumes f: "\y. monofun (\x. f x y)" shows "monofun f" apply (rule monofunI) apply (rule less_fun_ext) -apply (blast dest: monofunE) +apply (erule monofunE [OF f]) done -lemma cont2cont_lambda: "(\y. cont (\x. f x y)) \ cont f" +lemma cont2cont_lambda [simp]: + assumes f: "\y. cont (\x. f x y)" shows "cont f" apply (subgoal_tac "monofun f") apply (rule monocontlub2cont) apply assumption apply (rule contlubI) apply (rule ext) apply (simp add: thelub_fun ch2ch_monofun) -apply (blast dest: cont2contlubE) -apply (simp add: mono2mono_lambda cont2mono) +apply (erule cont2contlubE [OF f]) +apply (simp add: mono2mono_lambda cont2mono f) done text {* What D.A.Schmidt calls continuity of abstraction; never used here *} @@ -268,9 +270,7 @@ "\chain Y; \y. cont (\x.(c::'a::cpo\'b::type\'c::cpo) x y)\ \ (\y. \i. c (Y i) y) = (\i. (\y. c (Y i) y))" apply (rule thelub_fun [symmetric]) -apply (rule ch2ch_cont) -apply (simp add: cont2cont_lambda) -apply assumption +apply (simp add: ch2ch_cont) done lemma mono2mono_app: