src/HOL/MicroJava/BV/BVExample.thy
changeset 13148 fe118a977a6d
parent 13139 94648e0e4506
child 13187 e5434b822a96
equal deleted inserted replaced
13147:491a48cf6023 13148:fe118a977a6d
   250    (                                    [], [Class list_name, Class list_name]),
   250    (                                    [], [Class list_name, Class list_name]),
   251    (                     [Class list_name], [Class list_name, Class list_name]),
   251    (                     [Class list_name], [Class list_name, Class list_name]),
   252    (    [Class list_name, Class list_name], [Class list_name, Class list_name]),
   252    (    [Class list_name, Class list_name], [Class list_name, Class list_name]),
   253    (                                    [], [Class list_name, Class list_name]),
   253    (                                    [], [Class list_name, Class list_name]),
   254    (                          [PrimT Void], [Class list_name, Class list_name])]"
   254    (                          [PrimT Void], [Class list_name, Class list_name])]"
   255 
       
   256 declare nat_number [simp]
       
   257 
   255 
   258 lemma wt_append [simp]:
   256 lemma wt_append [simp]:
   259   "wt_method E list_name [Class list_name] (PrimT Void) 3 0 append_ins
   257   "wt_method E list_name [Class list_name] (PrimT Void) 3 0 append_ins
   260              [(Suc 0, 2, 8, Xcpt NullPointer)] \<phi>\<^sub>a"
   258              [(Suc 0, 2, 8, Xcpt NullPointer)] \<phi>\<^sub>a"
   261   apply (simp add: wt_method_def append_ins_def phi_append_def 
   259   apply (simp add: wt_method_def append_ins_def phi_append_def 
   349 constdefs 
   347 constdefs 
   350   Phi :: prog_type ("\<Phi>")
   348   Phi :: prog_type ("\<Phi>")
   351   "\<Phi> C sg \<equiv> if C = test_name \<and> sg = (makelist_name, []) then \<phi>\<^sub>m else          
   349   "\<Phi> C sg \<equiv> if C = test_name \<and> sg = (makelist_name, []) then \<phi>\<^sub>m else          
   352              if C = list_name \<and> sg = (append_name, [Class list_name]) then \<phi>\<^sub>a else []"
   350              if C = list_name \<and> sg = (append_name, [Class list_name]) then \<phi>\<^sub>a else []"
   353 
   351 
   354 declare nat_number [simp del]   
       
   355 
       
   356 lemma wf_prog:
   352 lemma wf_prog:
   357   "wt_jvm_prog E \<Phi>" 
   353   "wt_jvm_prog E \<Phi>" 
   358   apply (unfold wt_jvm_prog_def)
   354   apply (unfold wt_jvm_prog_def)
   359   apply (rule wf_mb'E [OF wf_struct])
   355   apply (rule wf_mb'E [OF wf_struct])
   360   apply (simp add: E_def)
   356   apply (simp add: E_def)