equal
deleted
inserted
replaced
225 declare split_if [split del] split_if_asm [split del] |
225 declare split_if [split del] split_if_asm [split del] |
226 option.split [split del] option.split_asm [split del] |
226 option.split [split del] option.split_asm [split del] |
227 not_None_eq [simp del] |
227 not_None_eq [simp del] |
228 split_paired_All [simp del] split_paired_Ex [simp del] |
228 split_paired_All [simp del] split_paired_Ex [simp del] |
229 ML_setup {* |
229 ML_setup {* |
230 simpset_ref() := simpset() delloop "split_all_tac" |
230 change_simpset (fn ss => ss delloop "split_all_tac"); |
231 *} |
231 *} |
232 inductive_cases evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> vs'" |
232 inductive_cases evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> vs'" |
233 |
233 |
234 inductive_cases evaln_elim_cases: |
234 inductive_cases evaln_elim_cases: |
235 "G\<turnstile>(Some xc, s) \<midarrow>t \<succ>\<midarrow>n\<rightarrow> vs'" |
235 "G\<turnstile>(Some xc, s) \<midarrow>t \<succ>\<midarrow>n\<rightarrow> vs'" |
268 declare split_if [split] split_if_asm [split] |
268 declare split_if [split] split_if_asm [split] |
269 option.split [split] option.split_asm [split] |
269 option.split [split] option.split_asm [split] |
270 not_None_eq [simp] |
270 not_None_eq [simp] |
271 split_paired_All [simp] split_paired_Ex [simp] |
271 split_paired_All [simp] split_paired_Ex [simp] |
272 ML_setup {* |
272 ML_setup {* |
273 simpset_ref() := simpset() addloop ("split_all_tac", split_all_tac) |
273 change_simpset (fn ss => ss addloop ("split_all_tac", split_all_tac)); |
274 *} |
274 *} |
275 lemma evaln_Inj_elim: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w,s') \<Longrightarrow> case t of In1 ec \<Rightarrow> |
275 lemma evaln_Inj_elim: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w,s') \<Longrightarrow> case t of In1 ec \<Rightarrow> |
276 (case ec of Inl e \<Rightarrow> (\<exists>v. w = In1 v) | Inr c \<Rightarrow> w = \<diamondsuit>) |
276 (case ec of Inl e \<Rightarrow> (\<exists>v. w = In1 v) | Inr c \<Rightarrow> w = \<diamondsuit>) |
277 | In2 e \<Rightarrow> (\<exists>v. w = In2 v) | In3 e \<Rightarrow> (\<exists>v. w = In3 v)" |
277 | In2 e \<Rightarrow> (\<exists>v. w = In2 v) | In3 e \<Rightarrow> (\<exists>v. w = In3 v)" |
278 apply (erule evaln_cases , auto) |
278 apply (erule evaln_cases , auto) |