src/HOLCF/Domain.thy
changeset 35494 45c9a8278faf
parent 35457 d63655b88369
child 35529 089e438b925b
equal deleted inserted replaced
35493:89b945fa0a31 35494:45c9a8278faf
   248   ssnd_spair sfst_spair up_defined spair_defined
   248   ssnd_spair sfst_spair up_defined spair_defined
   249 
   249 
   250 lemmas sel_defined_iff_rules =
   250 lemmas sel_defined_iff_rules =
   251   cfcomp2 sfst_defined_iff ssnd_defined_iff
   251   cfcomp2 sfst_defined_iff ssnd_defined_iff
   252 
   252 
       
   253 lemmas take_con_rules =
       
   254   ID1 ssum_map_sinl' ssum_map_sinr' ssum_map_strict
       
   255   sprod_map_spair' sprod_map_strict u_map_up u_map_strict
       
   256 
       
   257 lemma lub_ID_take_lemma:
       
   258   assumes "chain t" and "(\<Squnion>n. t n) = ID"
       
   259   assumes "\<And>n. t n\<cdot>x = t n\<cdot>y" shows "x = y"
       
   260 proof -
       
   261   have "(\<Squnion>n. t n\<cdot>x) = (\<Squnion>n. t n\<cdot>y)"
       
   262     using assms(3) by simp
       
   263   then have "(\<Squnion>n. t n)\<cdot>x = (\<Squnion>n. t n)\<cdot>y"
       
   264     using assms(1) by (simp add: lub_distribs)
       
   265   then show "x = y"
       
   266     using assms(2) by simp
       
   267 qed
       
   268 
       
   269 lemma lub_ID_reach:
       
   270   assumes "chain t" and "(\<Squnion>n. t n) = ID"
       
   271   shows "(\<Squnion>n. t n\<cdot>x) = x"
       
   272 using assms by (simp add: lub_distribs)
       
   273 
   253 use "Tools/cont_consts.ML"
   274 use "Tools/cont_consts.ML"
   254 use "Tools/cont_proc.ML"
   275 use "Tools/cont_proc.ML"
   255 use "Tools/Domain/domain_library.ML"
   276 use "Tools/Domain/domain_library.ML"
   256 use "Tools/Domain/domain_syntax.ML"
   277 use "Tools/Domain/domain_syntax.ML"
   257 use "Tools/Domain/domain_axioms.ML"
   278 use "Tools/Domain/domain_axioms.ML"