src/HOL/Bali/AxSound.thy
changeset 12937 0c4fd7529467
parent 12925 99131847fb93
child 13337 f75dfc606ac7
equal deleted inserted replaced
12936:84eb6c75cfe3 12937:0c4fd7529467
   245 apply (force dest!: evaln_eval eval_gext' elim: conforms_return 
   245 apply (force dest!: evaln_eval eval_gext' elim: conforms_return 
   246              del: impCE simp add: init_lvars_def2)
   246              del: impCE simp add: init_lvars_def2)
   247 done
   247 done
   248 
   248 
   249 corollary evaln_type_sound:
   249 corollary evaln_type_sound:
   250       (assumes evaln: "G\<turnstile>s0 \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v,s1)" and
   250   assumes evaln: "G\<turnstile>s0 \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v,s1)" and
   251                   wt: "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile>t\<Colon>T" and
   251              wt: "\<lparr>prg=G,cls=accC,lcl=L\<rparr>\<turnstile>t\<Colon>T" and
   252              conf_s0: "s0\<Colon>\<preceq>(G,L)" and
   252         conf_s0: "s0\<Colon>\<preceq>(G,L)" and
   253                   wf: "wf_prog G"                         
   253              wf: "wf_prog G"                         
   254       ) "s1\<Colon>\<preceq>(G,L) \<and>  (normal s1 \<longrightarrow> G,L,store s1\<turnstile>t\<succ>v\<Colon>\<preceq>T) \<and> 
   254   shows "s1\<Colon>\<preceq>(G,L) \<and>  (normal s1 \<longrightarrow> G,L,store s1\<turnstile>t\<succ>v\<Colon>\<preceq>T) \<and> 
   255          (error_free s0 = error_free s1)"
   255          (error_free s0 = error_free s1)"
   256 proof -
   256 proof -
   257   from evaln wt conf_s0 wf
   257   from evaln wt conf_s0 wf
   258   show ?thesis
   258   show ?thesis
   259     by (blast dest: evaln_eval eval_type_sound)
   259     by (blast dest: evaln_eval eval_type_sound)