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')" |