src/HOLCF/Cfun.thy
changeset 40005 3e3611136a13
parent 40003 427106657e04
child 40006 116e94f9543b
equal deleted inserted replaced
40004:9f6ed6840e8d 40005:3e3611136a13
   291 apply (rule UU_I)
   291 apply (rule UU_I)
   292 apply (erule subst)
   292 apply (erule subst)
   293 apply (rule minimal [THEN monofun_cfun_arg])
   293 apply (rule minimal [THEN monofun_cfun_arg])
   294 done
   294 done
   295 
   295 
   296 text {* the lub of a chain of continous functions is monotone *}
       
   297 
       
   298 lemma lub_cfun_mono: "chain F \<Longrightarrow> monofun (\<lambda>x. \<Squnion>i. F i\<cdot>x)"
       
   299 apply (drule ch2ch_monofun [OF monofun_Rep_CFun])
       
   300 apply (simp add: thelub_fun [symmetric])
       
   301 apply (erule monofun_lub_fun)
       
   302 apply (simp add: monofun_Rep_CFun2)
       
   303 done
       
   304 
       
   305 text {* a lemma about the exchange of lubs for type @{typ "'a -> 'b"} *}
       
   306 
       
   307 lemma ex_lub_cfun:
       
   308   "\<lbrakk>chain F; chain Y\<rbrakk> \<Longrightarrow> (\<Squnion>j. \<Squnion>i. F j\<cdot>(Y i)) = (\<Squnion>i. \<Squnion>j. F j\<cdot>(Y i))"
       
   309 by (simp add: diag_lub)
       
   310 
       
   311 text {* the lub of a chain of cont. functions is continuous *}
       
   312 
       
   313 lemma cont_lub_cfun: "chain F \<Longrightarrow> cont (\<lambda>x. \<Squnion>i. F i\<cdot>x)"
       
   314 apply (rule cont2cont_lub)
       
   315 apply (erule monofun_Rep_CFun [THEN ch2ch_monofun])
       
   316 apply (rule cont_Rep_CFun2)
       
   317 done
       
   318 
       
   319 text {* type @{typ "'a -> 'b"} is chain complete *}
   296 text {* type @{typ "'a -> 'b"} is chain complete *}
   320 
   297 
   321 lemma lub_cfun: "chain F \<Longrightarrow> range F <<| (\<Lambda> x. \<Squnion>i. F i\<cdot>x)"
   298 lemma lub_cfun: "chain F \<Longrightarrow> range F <<| (\<Lambda> x. \<Squnion>i. F i\<cdot>x)"
   322 by (simp only: contlub_cfun_fun [symmetric] eta_cfun thelubE)
   299 by (simp only: contlub_cfun_fun [symmetric] eta_cfun thelubE)
   323 
   300