src/HOL/HOLCF/Cfun.thy
changeset 41400 1a7557cc686a
parent 41322 43a5b9a0ee8a
child 41430 1aa23e9f2c87
equal deleted inserted replaced
41399:ad093e4638e2 41400:1a7557cc686a
   481 qed
   481 qed
   482 
   482 
   483 lemma seq_conv_if: "seq\<cdot>x = (if x = \<bottom> then \<bottom> else ID)"
   483 lemma seq_conv_if: "seq\<cdot>x = (if x = \<bottom> then \<bottom> else ID)"
   484 unfolding seq_def by simp
   484 unfolding seq_def by simp
   485 
   485 
   486 lemma seq1 [simp]: "seq\<cdot>\<bottom> = \<bottom>"
   486 lemma seq_simps [simp]:
   487 by (simp add: seq_conv_if)
   487   "seq\<cdot>\<bottom> = \<bottom>"
   488 
   488   "seq\<cdot>x\<cdot>\<bottom> = \<bottom>"
   489 lemma seq2 [simp]: "x \<noteq> \<bottom> \<Longrightarrow> seq\<cdot>x = ID"
   489   "x \<noteq> \<bottom> \<Longrightarrow> seq\<cdot>x = ID"
   490 by (simp add: seq_conv_if)
   490 by (simp_all add: seq_conv_if)
   491 
       
   492 lemma seq3 [simp]: "seq\<cdot>x\<cdot>\<bottom> = \<bottom>"
       
   493 by (simp add: seq_conv_if)
       
   494 
   491 
   495 definition
   492 definition
   496   strictify  :: "('a \<rightarrow> 'b) \<rightarrow> 'a \<rightarrow> 'b" where
   493   strictify  :: "('a \<rightarrow> 'b) \<rightarrow> 'a \<rightarrow> 'b" where
   497   "strictify = (\<Lambda> f x. seq\<cdot>x\<cdot>(f\<cdot>x))"
   494   "strictify = (\<Lambda> f x. seq\<cdot>x\<cdot>(f\<cdot>x))"
   498 
   495