src/HOLCF/Cfun3.ML
changeset 4098 71e05eb27fb6
parent 4004 773f3c061777
child 4423 a129b817b58a
equal deleted inserted replaced
4097:ddd1c18121e0 4098:71e05eb27fb6
   337         (monofun_Istrictify2 RS monocontlub2cont)); 
   337         (monofun_Istrictify2 RS monocontlub2cont)); 
   338 
   338 
   339 
   339 
   340 qed_goalw "strictify1" thy [strictify_def] "strictify`f`UU=UU" (fn _ => [
   340 qed_goalw "strictify1" thy [strictify_def] "strictify`f`UU=UU" (fn _ => [
   341         (stac beta_cfun 1),
   341         (stac beta_cfun 1),
   342          (simp_tac (!simpset addsimps [cont_Istrictify2,cont_Istrictify1,
   342          (simp_tac (simpset() addsimps [cont_Istrictify2,cont_Istrictify1,
   343 					cont2cont_CF1L]) 1),
   343 					cont2cont_CF1L]) 1),
   344         (stac beta_cfun 1),
   344         (stac beta_cfun 1),
   345         (rtac cont_Istrictify2 1),
   345         (rtac cont_Istrictify2 1),
   346         (rtac Istrictify1 1)
   346         (rtac Istrictify1 1)
   347         ]);
   347         ]);
   348 
   348 
   349 qed_goalw "strictify2" thy [strictify_def]
   349 qed_goalw "strictify2" thy [strictify_def]
   350         "~x=UU ==> strictify`f`x=f`x"  (fn prems => [
   350         "~x=UU ==> strictify`f`x=f`x"  (fn prems => [
   351         (stac beta_cfun 1),
   351         (stac beta_cfun 1),
   352          (simp_tac (!simpset addsimps [cont_Istrictify2,cont_Istrictify1,
   352          (simp_tac (simpset() addsimps [cont_Istrictify2,cont_Istrictify1,
   353 					cont2cont_CF1L]) 1),
   353 					cont2cont_CF1L]) 1),
   354         (stac beta_cfun 1),
   354         (stac beta_cfun 1),
   355         (rtac cont_Istrictify2 1),
   355         (rtac cont_Istrictify2 1),
   356         (rtac Istrictify2 1),
   356         (rtac Istrictify2 1),
   357         (resolve_tac prems 1)
   357         (resolve_tac prems 1)
   368 (* ------------------------------------------------------------------------ *)
   368 (* ------------------------------------------------------------------------ *)
   369 (* use cont_tac as autotac.                                                *)
   369 (* use cont_tac as autotac.                                                *)
   370 (* ------------------------------------------------------------------------ *)
   370 (* ------------------------------------------------------------------------ *)
   371 
   371 
   372 (* HINT: cont_tac is now installed in simplifier in Lift.ML ! *)
   372 (* HINT: cont_tac is now installed in simplifier in Lift.ML ! *)
   373 (*simpset := !simpset addsolver (K (DEPTH_SOLVE_1 o cont_tac));*)
   373 (*simpset_ref() := simpset() addsolver (K (DEPTH_SOLVE_1 o cont_tac));*)
   374 
   374 
   375 (* ------------------------------------------------------------------------ *)
   375 (* ------------------------------------------------------------------------ *)
   376 (* some lemmata for functions with flat/chain_finite domain/range types	    *)
   376 (* some lemmata for functions with flat/chain_finite domain/range types	    *)
   377 (* ------------------------------------------------------------------------ *)
   377 (* ------------------------------------------------------------------------ *)
   378 
   378