src/HOLCF/Product_Cpo.thy
changeset 40619 84edf7177d73
parent 40321 d065b195ec89
child 40771 1c6f7d4b110e
equal deleted inserted replaced
40592:f432973ce0f6 40619:84edf7177d73
   274 lemma cont2cont_split_simple [simp, cont2cont]:
   274 lemma cont2cont_split_simple [simp, cont2cont]:
   275  assumes "\<And>a b. cont (\<lambda>x. f x a b)"
   275  assumes "\<And>a b. cont (\<lambda>x. f x a b)"
   276  shows "cont (\<lambda>x. case p of (a, b) \<Rightarrow> f x a b)"
   276  shows "cont (\<lambda>x. case p of (a, b) \<Rightarrow> f x a b)"
   277 using assms by (cases p) auto
   277 using assms by (cases p) auto
   278 
   278 
       
   279 text {* Admissibility of predicates on product types. *}
       
   280 
       
   281 lemma adm_prod_case [simp]:
       
   282   assumes "adm (\<lambda>x. P x (fst (f x)) (snd (f x)))"
       
   283   shows "adm (\<lambda>x. case f x of (a, b) \<Rightarrow> P x a b)"
       
   284 unfolding prod_case_beta using assms .
       
   285 
   279 subsection {* Compactness and chain-finiteness *}
   286 subsection {* Compactness and chain-finiteness *}
   280 
   287 
   281 lemma fst_below_iff: "fst (x::'a \<times> 'b) \<sqsubseteq> y \<longleftrightarrow> x \<sqsubseteq> (y, snd x)"
   288 lemma fst_below_iff: "fst (x::'a \<times> 'b) \<sqsubseteq> y \<longleftrightarrow> x \<sqsubseteq> (y, snd x)"
   282 unfolding below_prod_def by simp
   289 unfolding below_prod_def by simp
   283 
   290