src/HOLCF/Sprod3.ML
changeset 3842 b55686a7b22c
parent 2640 ee4dfce170a0
child 4098 71e05eb27fb6
equal deleted inserted replaced
3841:22bbc1676768 3842:b55686a7b22c
   132         [
   132         [
   133         (cut_facts_tac prems 1),
   133         (cut_facts_tac prems 1),
   134         (res_inst_tac [("f1","Ispair")] (arg_cong RS cong) 1),
   134         (res_inst_tac [("f1","Ispair")] (arg_cong RS cong) 1),
   135         (rtac sym 1),
   135         (rtac sym 1),
   136         (rtac lub_chain_maxelem 1),
   136         (rtac lub_chain_maxelem 1),
   137         (res_inst_tac [("P","%j.Y(j)~=UU")] exE 1),
   137         (res_inst_tac [("P","%j. Y(j)~=UU")] exE 1),
   138         (rtac (not_all RS iffD1) 1),
   138         (rtac (not_all RS iffD1) 1),
   139         (res_inst_tac [("Q","lub(range(Y)) = UU")] contrapos 1),
   139         (res_inst_tac [("Q","lub(range(Y)) = UU")] contrapos 1),
   140         (atac 1),
   140         (atac 1),
   141         (rtac chain_UU_I_inverse 1),
   141         (rtac chain_UU_I_inverse 1),
   142         (atac 1),
   142         (atac 1),
   313 (* ------------------------------------------------------------------------ *)
   313 (* ------------------------------------------------------------------------ *)
   314 (* convert all lemmas to the continuous versions                            *)
   314 (* convert all lemmas to the continuous versions                            *)
   315 (* ------------------------------------------------------------------------ *)
   315 (* ------------------------------------------------------------------------ *)
   316 
   316 
   317 qed_goalw "beta_cfun_sprod" thy [spair_def]
   317 qed_goalw "beta_cfun_sprod" thy [spair_def]
   318         "(LAM x y.Ispair x y)`a`b = Ispair a b"
   318         "(LAM x y. Ispair x y)`a`b = Ispair a b"
   319  (fn prems =>
   319  (fn prems =>
   320         [
   320         [
   321         (stac beta_cfun 1),
   321         (stac beta_cfun 1),
   322         (simp_tac (!simpset addsimps [cont_Ispair2, cont_Ispair1,
   322         (simp_tac (!simpset addsimps [cont_Ispair2, cont_Ispair1,
   323 					cont2cont_CF1L]) 1),
   323 					cont2cont_CF1L]) 1),
   562         ]);
   562         ]);
   563 
   563 
   564 
   564 
   565 qed_goalw "lub_sprod2" thy [sfst_def,ssnd_def,spair_def]
   565 qed_goalw "lub_sprod2" thy [sfst_def,ssnd_def,spair_def]
   566 "[|is_chain(S)|] ==> range(S) <<| \
   566 "[|is_chain(S)|] ==> range(S) <<| \
   567 \ (| lub(range(%i.sfst`(S i))), lub(range(%i.ssnd`(S i))) |)"
   567 \ (| lub(range(%i. sfst`(S i))), lub(range(%i. ssnd`(S i))) |)"
   568  (fn prems =>
   568  (fn prems =>
   569         [
   569         [
   570         (cut_facts_tac prems 1),
   570         (cut_facts_tac prems 1),
   571         (stac beta_cfun_sprod 1),
   571         (stac beta_cfun_sprod 1),
   572         (stac (beta_cfun RS ext) 1),
   572         (stac (beta_cfun RS ext) 1),