src/HOL/Bali/Eval.thy
changeset 82695 d93ead9ac6df
parent 81458 1263d1143bab
equal deleted inserted replaced
82692:8f0b2daa7eaa 82695:d93ead9ac6df
   772 apply blast+
   772 apply blast+
   773 done
   773 done
   774 
   774 
   775 declare not_None_eq [simp del] (* IntDef.Zero_def [simp del] *)
   775 declare not_None_eq [simp del] (* IntDef.Zero_def [simp del] *)
   776 declare split_paired_All [simp del] split_paired_Ex [simp del]
   776 declare split_paired_All [simp del] split_paired_Ex [simp del]
   777 setup \<open>map_theory_simpset (fn ctxt => ctxt delloop "split_all_tac")\<close>
   777 setup \<open>map_theory_simpset (fn ctxt => ctxt |> Simplifier.del_loop "split_all_tac")\<close>
   778 
   778 
   779 inductive_cases eval_cases: "G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (v, s')"
   779 inductive_cases eval_cases: "G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (v, s')"
   780 
   780 
   781 inductive_cases eval_elim_cases [cases set]:
   781 inductive_cases eval_elim_cases [cases set]:
   782         "G\<turnstile>(Some xc,s) \<midarrow>t                              \<succ>\<rightarrow> (v, s')"
   782         "G\<turnstile>(Some xc,s) \<midarrow>t                              \<succ>\<rightarrow> (v, s')"
   810         "G\<turnstile>Norm s \<midarrow>In2  (e1.[e2])                      \<succ>\<rightarrow> (v, s')"
   810         "G\<turnstile>Norm s \<midarrow>In2  (e1.[e2])                      \<succ>\<rightarrow> (v, s')"
   811         "G\<turnstile>Norm s \<midarrow>In1l ({accC,statT,mode}e\<cdot>mn({pT}p)) \<succ>\<rightarrow> (v, s')"
   811         "G\<turnstile>Norm s \<midarrow>In1l ({accC,statT,mode}e\<cdot>mn({pT}p)) \<succ>\<rightarrow> (v, s')"
   812         "G\<turnstile>Norm s \<midarrow>In1r (Init C)                       \<succ>\<rightarrow> (x, s')"
   812         "G\<turnstile>Norm s \<midarrow>In1r (Init C)                       \<succ>\<rightarrow> (x, s')"
   813 declare not_None_eq [simp]  (* IntDef.Zero_def [simp] *)
   813 declare not_None_eq [simp]  (* IntDef.Zero_def [simp] *)
   814 declare split_paired_All [simp] split_paired_Ex [simp]
   814 declare split_paired_All [simp] split_paired_Ex [simp]
   815 declaration \<open>K (Simplifier.map_ss (fn ss => ss addloop ("split_all_tac", split_all_tac)))\<close>
   815 declaration \<open>K (Simplifier.map_ss (fn ss => ss |> Simplifier.add_loop ("split_all_tac", split_all_tac)))\<close>
   816 declare if_split     [split] if_split_asm     [split] 
   816 declare if_split     [split] if_split_asm     [split] 
   817         option.split [split] option.split_asm [split]
   817         option.split [split] option.split_asm [split]
   818 
   818 
   819 lemma eval_Inj_elim: 
   819 lemma eval_Inj_elim: 
   820  "G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (w,s') 
   820  "G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (w,s')