equal
deleted
inserted
replaced
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 |