src/HOL/Bali/DefiniteAssignment.thy
changeset 51717 9e7d1c139569
parent 46222 cb3f370e66e1
child 52037 837211662fb8
equal deleted inserted replaced
51709:19b47bfac6ef 51717:9e7d1c139569
   816 
   816 
   817 
   817 
   818 declare inj_term_sym_simps [simp]
   818 declare inj_term_sym_simps [simp]
   819 declare assigns_if.simps [simp del]
   819 declare assigns_if.simps [simp del]
   820 declare split_paired_All [simp del] split_paired_Ex [simp del]
   820 declare split_paired_All [simp del] split_paired_Ex [simp del]
   821 declaration {* K (Simplifier.map_ss (fn ss => ss delloop "split_all_tac")) *}
   821 setup {* map_theory_simpset (fn ctxt => ctxt delloop "split_all_tac") *}
   822 
   822 
   823 inductive_cases da_elim_cases [cases set]:
   823 inductive_cases da_elim_cases [cases set]:
   824   "Env\<turnstile> B \<guillemotright>\<langle>Skip\<rangle>\<guillemotright> A" 
   824   "Env\<turnstile> B \<guillemotright>\<langle>Skip\<rangle>\<guillemotright> A" 
   825   "Env\<turnstile> B \<guillemotright>In1r Skip\<guillemotright> A" 
   825   "Env\<turnstile> B \<guillemotright>In1r Skip\<guillemotright> A" 
   826   "Env\<turnstile> B \<guillemotright>\<langle>Expr e\<rangle>\<guillemotright> A"
   826   "Env\<turnstile> B \<guillemotright>\<langle>Expr e\<rangle>\<guillemotright> A"
   882   "Env\<turnstile> B \<guillemotright>\<langle>e#es\<rangle>\<guillemotright> A"
   882   "Env\<turnstile> B \<guillemotright>\<langle>e#es\<rangle>\<guillemotright> A"
   883   "Env\<turnstile> B \<guillemotright>In3 (e#es)\<guillemotright> A"
   883   "Env\<turnstile> B \<guillemotright>In3 (e#es)\<guillemotright> A"
   884 declare inj_term_sym_simps [simp del]
   884 declare inj_term_sym_simps [simp del]
   885 declare assigns_if.simps [simp]
   885 declare assigns_if.simps [simp]
   886 declare split_paired_All [simp] split_paired_Ex [simp]
   886 declare split_paired_All [simp] split_paired_Ex [simp]
   887 declaration {* K (Simplifier.map_ss (fn ss => ss addloop ("split_all_tac", split_all_tac))) *}
   887 setup {* map_theory_simpset (fn ctxt => ctxt addloop' ("split_all_tac", split_all_tac)) *}
   888 
   888 
   889 (* To be able to eliminate both the versions with the overloaded brackets: 
   889 (* To be able to eliminate both the versions with the overloaded brackets: 
   890    (B \<guillemotright>\<langle>Skip\<rangle>\<guillemotright> A) and with the explicit constructor (B \<guillemotright>In1r Skip\<guillemotright> A), 
   890    (B \<guillemotright>\<langle>Skip\<rangle>\<guillemotright> A) and with the explicit constructor (B \<guillemotright>In1r Skip\<guillemotright> A), 
   891    every rule appears in both versions
   891    every rule appears in both versions
   892  *)
   892  *)