src/HOL/Bali/Evaln.thy
changeset 23747 b07cff284683
parent 23350 50c5b0912a0c
child 24019 67bde7cfcf10
equal deleted inserted replaced
23746:a455e69c31cc 23747:b07cff284683
    26 @{term check_field_access} and @{term check_method_access} like @{term eval}. 
    26 @{term check_field_access} and @{term check_method_access} like @{term eval}. 
    27 If it would omit them @{term evaln} and @{term eval} would only be equivalent 
    27 If it would omit them @{term evaln} and @{term eval} would only be equivalent 
    28 for welltyped, and definitely assigned terms.
    28 for welltyped, and definitely assigned terms.
    29 *}
    29 *}
    30 
    30 
    31 inductive2
    31 inductive
    32   evaln	:: "[prog, state, term, nat, vals, state] \<Rightarrow> bool"
    32   evaln	:: "[prog, state, term, nat, vals, state] \<Rightarrow> bool"
    33     ("_\<turnstile>_ \<midarrow>_\<succ>\<midarrow>_\<rightarrow> '(_, _')" [61,61,80,61,0,0] 60)
    33     ("_\<turnstile>_ \<midarrow>_\<succ>\<midarrow>_\<rightarrow> '(_, _')" [61,61,80,61,0,0] 60)
    34   and evarn :: "[prog, state, var, vvar, nat, state] \<Rightarrow> bool"
    34   and evarn :: "[prog, state, var, vvar, nat, state] \<Rightarrow> bool"
    35     ("_\<turnstile>_ \<midarrow>_=\<succ>_\<midarrow>_\<rightarrow> _" [61,61,90,61,61,61] 60)
    35     ("_\<turnstile>_ \<midarrow>_=\<succ>_\<midarrow>_\<rightarrow> _" [61,61,90,61,61,61] 60)
    36   and eval_n:: "[prog, state, expr, val, nat, state] \<Rightarrow> bool"
    36   and eval_n:: "[prog, state, expr, val, nat, state] \<Rightarrow> bool"
   199         not_None_eq [simp del] 
   199         not_None_eq [simp del] 
   200         split_paired_All [simp del] split_paired_Ex [simp del]
   200         split_paired_All [simp del] split_paired_Ex [simp del]
   201 ML_setup {*
   201 ML_setup {*
   202 change_simpset (fn ss => ss delloop "split_all_tac");
   202 change_simpset (fn ss => ss delloop "split_all_tac");
   203 *}
   203 *}
   204 inductive_cases2 evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v, s')"
   204 inductive_cases evaln_cases: "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (v, s')"
   205 
   205 
   206 inductive_cases2 evaln_elim_cases:
   206 inductive_cases evaln_elim_cases:
   207 	"G\<turnstile>(Some xc, s) \<midarrow>t                        \<succ>\<midarrow>n\<rightarrow> (v, s')"
   207 	"G\<turnstile>(Some xc, s) \<midarrow>t                        \<succ>\<midarrow>n\<rightarrow> (v, s')"
   208 	"G\<turnstile>Norm s \<midarrow>In1r Skip                      \<succ>\<midarrow>n\<rightarrow> (x, s')"
   208 	"G\<turnstile>Norm s \<midarrow>In1r Skip                      \<succ>\<midarrow>n\<rightarrow> (x, s')"
   209         "G\<turnstile>Norm s \<midarrow>In1r (Jmp j)                   \<succ>\<midarrow>n\<rightarrow> (x, s')"
   209         "G\<turnstile>Norm s \<midarrow>In1r (Jmp j)                   \<succ>\<midarrow>n\<rightarrow> (x, s')"
   210         "G\<turnstile>Norm s \<midarrow>In1r (l\<bullet> c)                    \<succ>\<midarrow>n\<rightarrow> (x, s')"
   210         "G\<turnstile>Norm s \<midarrow>In1r (l\<bullet> c)                    \<succ>\<midarrow>n\<rightarrow> (x, s')"
   211 	"G\<turnstile>Norm s \<midarrow>In3  ([])                      \<succ>\<midarrow>n\<rightarrow> (v, s')"
   211 	"G\<turnstile>Norm s \<midarrow>In3  ([])                      \<succ>\<midarrow>n\<rightarrow> (v, s')"