equal
deleted
inserted
replaced
222 |
222 |
223 qed_goalw "Istrictify1" Cfun3.thy [Istrictify_def] |
223 qed_goalw "Istrictify1" Cfun3.thy [Istrictify_def] |
224 "Istrictify(f)(UU)= (UU)" |
224 "Istrictify(f)(UU)= (UU)" |
225 (fn prems => |
225 (fn prems => |
226 [ |
226 [ |
227 (simp_tac HOL_ss 1) |
227 (Simp_tac 1) |
228 ]); |
228 ]); |
229 |
229 |
230 qed_goalw "Istrictify2" Cfun3.thy [Istrictify_def] |
230 qed_goalw "Istrictify2" Cfun3.thy [Istrictify_def] |
231 "~x=UU ==> Istrictify(f)(x)=f`x" |
231 "~x=UU ==> Istrictify(f)(x)=f`x" |
232 (fn prems => |
232 (fn prems => |
233 [ |
233 [ |
234 (cut_facts_tac prems 1), |
234 (cut_facts_tac prems 1), |
235 (asm_simp_tac HOL_ss 1) |
235 (Asm_simp_tac 1) |
236 ]); |
236 ]); |
237 |
237 |
238 qed_goal "monofun_Istrictify1" Cfun3.thy "monofun(Istrictify)" |
238 qed_goal "monofun_Istrictify1" Cfun3.thy "monofun(Istrictify)" |
239 (fn prems => |
239 (fn prems => |
240 [ |
240 [ |
382 |
382 |
383 (* ------------------------------------------------------------------------ *) |
383 (* ------------------------------------------------------------------------ *) |
384 (* Instantiate the simplifier *) |
384 (* Instantiate the simplifier *) |
385 (* ------------------------------------------------------------------------ *) |
385 (* ------------------------------------------------------------------------ *) |
386 |
386 |
387 val Cfun_rews = [minimal,refl_less,beta_cfun,strict_fapp1,strictify1, |
387 Addsimps [minimal,refl_less,beta_cfun,strict_fapp1,strictify1, strictify2]; |
388 strictify2]; |
388 |
389 |
389 |
390 (* ------------------------------------------------------------------------ *) |
390 (* ------------------------------------------------------------------------ *) |
391 (* use cont_tac as autotac. *) |
391 (* use cont_tac as autotac. *) |
392 (* ------------------------------------------------------------------------ *) |
392 (* ------------------------------------------------------------------------ *) |
393 |
393 |
394 val Cfun_ss = HOL_ss |
394 simpset := !simpset setsolver |
395 addsimps Cfun_rews |
395 (fn thms => (resolve_tac (TrueI::refl::thms)) ORELSE' atac ORELSE' |
396 setsolver |
396 (fn i => DEPTH_SOLVE_1 (cont_tac i)) |
397 (fn thms => (resolve_tac (TrueI::refl::thms)) ORELSE' atac ORELSE' |
397 ); |
398 (fn i => DEPTH_SOLVE_1 (cont_tac i)) |
|
399 ); |
|