src/HOL/IMP/Transition.thy
changeset 18447 da548623916a
parent 18372 2bffdf62fe7f
child 18557 60a0f9caa0a2
equal deleted inserted replaced
18446:6c558efcc754 18447:da548623916a
   670     (auto elim!: evalc1_term_cases equivD2 [OF unfold_while])
   670     (auto elim!: evalc1_term_cases equivD2 [OF unfold_while])
   671 
   671 
   672 lemma FB_lemma2:
   672 lemma FB_lemma2:
   673   "(c,s) \<longrightarrow>\<^sub>1\<^sup>* (c',s') \<Longrightarrow> c \<noteq> None \<Longrightarrow>
   673   "(c,s) \<longrightarrow>\<^sub>1\<^sup>* (c',s') \<Longrightarrow> c \<noteq> None \<Longrightarrow>
   674    \<langle>if c' = None then \<SKIP> else the c',s'\<rangle> \<longrightarrow>\<^sub>c t \<Longrightarrow> \<langle>the c,s\<rangle> \<longrightarrow>\<^sub>c t"
   674    \<langle>if c' = None then \<SKIP> else the c',s'\<rangle> \<longrightarrow>\<^sub>c t \<Longrightarrow> \<langle>the c,s\<rangle> \<longrightarrow>\<^sub>c t"
   675   apply (induct rule: converse_rtrancl_induct2)
   675   apply (induct rule: converse_rtrancl_induct2, force)
   676    apply simp
       
   677   apply clarsimp
       
   678   apply (fastsimp elim!: evalc1_term_cases intro: FB_lemma3)
   676   apply (fastsimp elim!: evalc1_term_cases intro: FB_lemma3)
   679   done
   677   done
   680 
   678 
   681 lemma evalc1_impl_evalc': "\<langle>c,s\<rangle> \<longrightarrow>\<^sub>1\<^sup>* \<langle>t\<rangle> \<Longrightarrow> \<langle>c,s\<rangle> \<longrightarrow>\<^sub>c t"
   679 lemma evalc1_impl_evalc': "\<langle>c,s\<rangle> \<longrightarrow>\<^sub>1\<^sup>* \<langle>t\<rangle> \<Longrightarrow> \<langle>c,s\<rangle> \<longrightarrow>\<^sub>c t"
   682   by (fastsimp dest: FB_lemma2)
   680   by (fastsimp dest: FB_lemma2)