src/HOL/HOLCF/Product_Cpo.thy
changeset 61424 c3658c18b7bc
parent 58880 0baae4311a9f
child 62175 8ffc4d0e652d
equal deleted inserted replaced
61423:9b6a0fb85fa3 61424:c3658c18b7bc
   167 unfolding inst_prod_pcpo by (rule snd_conv)
   167 unfolding inst_prod_pcpo by (rule snd_conv)
   168 
   168 
   169 lemma Pair_strict [simp]: "(\<bottom>, \<bottom>) = \<bottom>"
   169 lemma Pair_strict [simp]: "(\<bottom>, \<bottom>) = \<bottom>"
   170 by simp
   170 by simp
   171 
   171 
   172 lemma split_strict [simp]: "split f \<bottom> = f \<bottom> \<bottom>"
   172 lemma split_strict [simp]: "case_prod f \<bottom> = f \<bottom> \<bottom>"
   173 unfolding split_def by simp
   173 unfolding split_def by simp
   174 
   174 
   175 subsection {* Continuity of \emph{Pair}, \emph{fst}, \emph{snd} *}
   175 subsection {* Continuity of \emph{Pair}, \emph{fst}, \emph{snd} *}
   176 
   176 
   177 lemma cont_pair1: "cont (\<lambda>x. (x, y))"
   177 lemma cont_pair1: "cont (\<lambda>x. (x, y))"
   233   shows "cont f"
   233   shows "cont f"
   234 proof -
   234 proof -
   235   have "cont (\<lambda>(x, y). f (x, y))"
   235   have "cont (\<lambda>(x, y). f (x, y))"
   236     by (intro cont2cont_case_prod f1 f2 cont2cont)
   236     by (intro cont2cont_case_prod f1 f2 cont2cont)
   237   thus "cont f"
   237   thus "cont f"
   238     by (simp only: split_eta)
   238     by (simp only: case_prod_eta)
   239 qed
   239 qed
   240 
   240 
   241 lemma prod_cont_iff:
   241 lemma prod_cont_iff:
   242   "cont f \<longleftrightarrow> (\<forall>y. cont (\<lambda>x. f (x, y))) \<and> (\<forall>x. cont (\<lambda>y. f (x, y)))"
   242   "cont f \<longleftrightarrow> (\<forall>y. cont (\<lambda>x. f (x, y))) \<and> (\<forall>x. cont (\<lambda>y. f (x, y)))"
   243 apply safe
   243 apply safe