src/HOL/IMP/Small_Step.thy
changeset 55834 459b5561ba4e
parent 54192 a5eec4263b3a
child 55836 8093590e49e4
equal deleted inserted replaced
55831:3a9386b32211 55834:459b5561ba4e
   155   "cs \<rightarrow> cs' \<Longrightarrow> cs' \<Rightarrow> t \<Longrightarrow> cs \<Rightarrow> t"
   155   "cs \<rightarrow> cs' \<Longrightarrow> cs' \<Rightarrow> t \<Longrightarrow> cs \<Rightarrow> t"
   156 apply (induction arbitrary: t rule: small_step.induct)
   156 apply (induction arbitrary: t rule: small_step.induct)
   157 apply auto
   157 apply auto
   158 done
   158 done
   159 
   159 
   160 lemma small_big_continue:
   160 lemma small_to_big:
   161   "cs \<rightarrow>* cs' \<Longrightarrow> cs' \<Rightarrow> t \<Longrightarrow> cs \<Rightarrow> t"
   161   "cs \<rightarrow>* (SKIP,t) \<Longrightarrow> cs \<Rightarrow> t"
   162 apply (induction rule: star.induct)
   162 apply (induction cs "(SKIP,t)" arbitrary: t rule: star.induct)
   163 apply (auto intro: small1_big_continue)
   163 apply (auto intro: small1_big_continue)
   164 done
   164 done
   165 
       
   166 lemma small_to_big: "cs \<rightarrow>* (SKIP,t) \<Longrightarrow> cs \<Rightarrow> t"
       
   167 by (metis small_big_continue Skip)
       
   168 
   165 
   169 text {*
   166 text {*
   170   Finally, the equivalence theorem:
   167   Finally, the equivalence theorem:
   171 *}
   168 *}
   172 theorem big_iff_small:
   169 theorem big_iff_small: