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