src/HOLCF/Completion.thy
changeset 28053 a2106c0d8c45
parent 27404 62171da527d6
child 28133 218252dfd81e
equal deleted inserted replaced
28052:4dc09699cf93 28053:a2106c0d8c45
   241   shows "chain (\<lambda>i. lub (f ` take i ` rep x))"
   241   shows "chain (\<lambda>i. lub (f ` take i ` rep x))"
   242  apply (rule chainI)
   242  apply (rule chainI)
   243  apply (rule is_lub_thelub0)
   243  apply (rule is_lub_thelub0)
   244   apply (rule basis_fun_lemma0, erule f_mono)
   244   apply (rule basis_fun_lemma0, erule f_mono)
   245  apply (rule is_ubI, clarsimp, rename_tac a)
   245  apply (rule is_ubI, clarsimp, rename_tac a)
   246  apply (rule sq_le.trans_less [OF f_mono [OF take_chain]])
   246  apply (rule trans_less [OF f_mono [OF take_chain]])
   247  apply (rule is_ub_thelub0)
   247  apply (rule is_ub_thelub0)
   248   apply (rule basis_fun_lemma0, erule f_mono)
   248   apply (rule basis_fun_lemma0, erule f_mono)
   249  apply simp
   249  apply simp
   250 done
   250 done
   251 
   251 
   266  apply (rule is_lub_thelub [OF _ ub_rangeI])
   266  apply (rule is_lub_thelub [OF _ ub_rangeI])
   267   apply (rule basis_fun_lemma1, erule f_mono)
   267   apply (rule basis_fun_lemma1, erule f_mono)
   268  apply (rule is_lub_thelub0)
   268  apply (rule is_lub_thelub0)
   269   apply (rule basis_fun_lemma0, erule f_mono)
   269   apply (rule basis_fun_lemma0, erule f_mono)
   270  apply (rule is_ubI, clarsimp, rename_tac a)
   270  apply (rule is_ubI, clarsimp, rename_tac a)
   271  apply (rule sq_le.trans_less [OF f_mono [OF take_less]])
   271  apply (rule trans_less [OF f_mono [OF take_less]])
   272  apply (erule (1) ub_imageD)
   272  apply (erule (1) ub_imageD)
   273 done
   273 done
   274 
   274 
   275 lemma basis_fun_lemma:
   275 lemma basis_fun_lemma:
   276   fixes f :: "'a::type \<Rightarrow> 'c::cpo"
   276   fixes f :: "'a::type \<Rightarrow> 'c::cpo"
   369  apply (rule less_cfun_ext)
   369  apply (rule less_cfun_ext)
   370  apply (simp only: basis_fun_beta f_mono g_mono)
   370  apply (simp only: basis_fun_beta f_mono g_mono)
   371  apply (rule is_lub_thelub0)
   371  apply (rule is_lub_thelub0)
   372   apply (rule basis_fun_lemma, erule f_mono)
   372   apply (rule basis_fun_lemma, erule f_mono)
   373  apply (rule ub_imageI, rename_tac a)
   373  apply (rule ub_imageI, rename_tac a)
   374  apply (rule sq_le.trans_less [OF less])
   374  apply (rule trans_less [OF less])
   375  apply (rule is_ub_thelub0)
   375  apply (rule is_ub_thelub0)
   376   apply (rule basis_fun_lemma, erule g_mono)
   376   apply (rule basis_fun_lemma, erule g_mono)
   377  apply (erule imageI)
   377  apply (erule imageI)
   378 done
   378 done
   379 
   379