equal
deleted
inserted
replaced
195 |
195 |
196 declare if_split [split del] if_split_asm [split del] |
196 declare if_split [split del] if_split_asm [split del] |
197 option.split [split del] option.split_asm [split del] |
197 option.split [split del] option.split_asm [split del] |
198 not_None_eq [simp del] |
198 not_None_eq [simp del] |
199 split_paired_All [simp del] split_paired_Ex [simp del] |
199 split_paired_All [simp del] split_paired_Ex [simp del] |
200 setup \<open>map_theory_simpset (fn ctxt => ctxt delloop "split_all_tac")\<close> |
200 setup \<open>map_theory_simpset (fn ctxt => ctxt |> Simplifier.del_loop "split_all_tac")\<close> |
201 |
201 |
202 inductive_cases evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v, s')" |
202 inductive_cases evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v, s')" |
203 |
203 |
204 inductive_cases evaln_elim_cases: |
204 inductive_cases evaln_elim_cases: |
205 "G\<turnstile>(Some xc, s) \<midarrow>t \<succ>\<midarrow>n\<rightarrow> (v, s')" |
205 "G\<turnstile>(Some xc, s) \<midarrow>t \<succ>\<midarrow>n\<rightarrow> (v, s')" |
236 |
236 |
237 declare if_split [split] if_split_asm [split] |
237 declare if_split [split] if_split_asm [split] |
238 option.split [split] option.split_asm [split] |
238 option.split [split] option.split_asm [split] |
239 not_None_eq [simp] |
239 not_None_eq [simp] |
240 split_paired_All [simp] split_paired_Ex [simp] |
240 split_paired_All [simp] split_paired_Ex [simp] |
241 declaration \<open>K (Simplifier.map_ss (fn ss => ss addloop ("split_all_tac", split_all_tac)))\<close> |
241 declaration \<open>K (Simplifier.map_ss (fn ss => ss |> Simplifier.add_loop ("split_all_tac", split_all_tac)))\<close> |
242 |
242 |
243 lemma evaln_Inj_elim: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w,s') \<Longrightarrow> case t of In1 ec \<Rightarrow> |
243 lemma evaln_Inj_elim: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w,s') \<Longrightarrow> case t of In1 ec \<Rightarrow> |
244 (case ec of Inl e \<Rightarrow> (\<exists>v. w = In1 v) | Inr c \<Rightarrow> w = \<diamondsuit>) |
244 (case ec of Inl e \<Rightarrow> (\<exists>v. w = In1 v) | Inr c \<Rightarrow> w = \<diamondsuit>) |
245 | In2 e \<Rightarrow> (\<exists>v. w = In2 v) | In3 e \<Rightarrow> (\<exists>v. w = In3 v)" |
245 | In2 e \<Rightarrow> (\<exists>v. w = In2 v) | In3 e \<Rightarrow> (\<exists>v. w = In3 v)" |
246 apply (erule evaln_cases , auto) |
246 apply (erule evaln_cases , auto) |