src/HOLCF/Cont.ML
changeset 7322 d16d7ddcc842
parent 5297 410417e0fd04
child 7499 23e090051cb8
equal deleted inserted replaced
7321:b4dcc32310fb 7322:d16d7ddcc842
   669 	fast_tac ((HOL_cs addss (simpset() addsimps [minimal]))) 1
   669 	fast_tac ((HOL_cs addss (simpset() addsimps [minimal]))) 1
   670 	]);
   670 	]);
   671 
   671 
   672 
   672 
   673 Goal "monofun f ==> cont(f::'a::chfin=>'b::pcpo)";
   673 Goal "monofun f ==> cont(f::'a::chfin=>'b::pcpo)";
   674 by(rtac monocontlub2cont 1);
   674 by (rtac monocontlub2cont 1);
   675 by( atac 1);
   675 by ( atac 1);
   676 by(rtac contlubI 1);
   676 by (rtac contlubI 1);
   677 by(strip_tac 1);
   677 by (strip_tac 1);
   678 by(forward_tac [chfin2finch] 1);
   678 by (forward_tac [chfin2finch] 1);
   679 by(rtac antisym_less 1);
   679 by (rtac antisym_less 1);
   680 by( force_tac (HOL_cs addIs [is_ub_thelub,ch2ch_monofun],
   680 by ( force_tac (HOL_cs addIs [is_ub_thelub,ch2ch_monofun],
   681                HOL_ss addsimps [finite_chain_def,maxinch_is_thelub]) 1);
   681                HOL_ss addsimps [finite_chain_def,maxinch_is_thelub]) 1);
   682 by(dtac (monofun_finch2finch COMP swap_prems_rl) 1);
   682 by (dtac (monofun_finch2finch COMP swap_prems_rl) 1);
   683 by( atac 1);
   683 by ( atac 1);
   684 by(asm_full_simp_tac (HOL_ss addsimps [finite_chain_def]) 1);
   684 by (asm_full_simp_tac (HOL_ss addsimps [finite_chain_def]) 1);
   685 by(etac conjE 1);
   685 by (etac conjE 1);
   686 by(etac exE 1);
   686 by (etac exE 1);
   687 by(asm_full_simp_tac (HOL_ss addsimps [maxinch_is_thelub]) 1);
   687 by (asm_full_simp_tac (HOL_ss addsimps [maxinch_is_thelub]) 1);
   688 by(etac (monofunE RS spec RS spec RS mp) 1);
   688 by (etac (monofunE RS spec RS spec RS mp) 1);
   689 by(etac is_ub_thelub 1);
   689 by (etac is_ub_thelub 1);
   690 qed "chfindom_monofun2cont";
   690 qed "chfindom_monofun2cont";
   691 
   691 
   692 bind_thm ("flatdom_strict2cont",flatdom2monofun RS chfindom_monofun2cont);
   692 bind_thm ("flatdom_strict2cont",flatdom2monofun RS chfindom_monofun2cont);
   693 (* f UU = UU ==> cont (f::'a=>'b::pcpo)" *)
   693 (* f UU = UU ==> cont (f::'a=>'b::pcpo)" *)