src/HOL/Bali/Evaln.thy
changeset 17876 b9c92f384109
parent 17589 58eeffd73be1
child 18249 4398f0f12579
equal deleted inserted replaced
17875:d81094515061 17876:b9c92f384109
   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)