author | oheimb |
Thu, 18 Jan 2001 20:23:51 +0100 | |
changeset 10927 | 33e290a70445 |
parent 10613 | 78b1d6c3ee9c |
child 10990 | e7ffc23a05f6 |
permissions | -rw-r--r-- |
8011 | 1 |
(* Title: HOL/MicroJava/J/Eval.ML |
2 |
ID: $Id$ |
|
3 |
Author: David von Oheimb |
|
4 |
Copyright 1999 Technische Universitaet Muenchen |
|
5 |
*) |
|
6 |
||
10042 | 7 |
Goal "[|new_Addr (heap s) = (a,x); \ |
8 |
\ s' = c_hupd (heap s(a\\<mapsto>(C,init_vars (fields (G,C))))) (x,s)|] ==> \ |
|
9 |
\ G\\<turnstile>Norm s -NewC C\\<succ>Addr a-> s'"; |
|
10613
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
10 |
by (Asm_simp_tac 1); |
9346
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
oheimb
parents:
8011
diff
changeset
|
11 |
br eval_evals_exec.NewC 1; |
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
oheimb
parents:
8011
diff
changeset
|
12 |
by Auto_tac; |
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
oheimb
parents:
8011
diff
changeset
|
13 |
qed "NewCI"; |
297dcbf64526
re-structuring MicroJava; added Example; corrected := syntax; simplfied cast
oheimb
parents:
8011
diff
changeset
|
14 |
|
10042 | 15 |
Goal "!!s s'. (G\\<turnstile>(x,s) -e \\<succ> v -> (x',s') --> x'=None --> x=None) \\<and> \ |
16 |
\ (G\\<turnstile>(x,s) -es[\\<succ>]vs-> (x',s') --> x'=None --> x=None) \\<and> \ |
|
17 |
\ (G\\<turnstile>(x,s) -c -> (x',s') --> x'=None --> x=None)"; |
|
8011 | 18 |
by(split_all_tac 1); |
19 |
by(rtac eval_evals_exec.induct 1); |
|
20 |
by(rewtac c_hupd_def); |
|
21 |
by(ALLGOALS Asm_full_simp_tac); |
|
22 |
qed "eval_evals_exec_no_xcpt"; |
|
23 |
||
10613
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
24 |
Goal "G\\<turnstile>(x,s) -e\\<succ>v-> (None,s') ==> x=None"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
25 |
by (dtac (eval_evals_exec_no_xcpt RS conjunct1 RS mp) 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
26 |
by (Fast_tac 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
27 |
qed "eval_no_xcpt"; |
8011 | 28 |
|
10613
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
29 |
Goal "G\\<turnstile>(x,s) -e[\\<succ>]v-> (None,s') ==> x=None"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
30 |
by (dtac (eval_evals_exec_no_xcpt RS conjunct2 RS conjunct1 RS mp) 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
31 |
by (Fast_tac 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
32 |
qed "evals_no_xcpt"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
33 |
|
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
34 |
Goal |
10042 | 35 |
"!!s s'. (G\\<turnstile>(x,s) -e \\<succ> v -> (x',s') --> x=Some xc --> x'=Some xc \\<and> s'=s) \\<and> \ |
36 |
\ (G\\<turnstile>(x,s) -es[\\<succ>]vs-> (x',s') --> x=Some xc --> x'=Some xc \\<and> s'=s) \\<and> \ |
|
10613
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
37 |
\ (G\\<turnstile>(x,s) -c -> (x',s') --> x=Some xc --> x'=Some xc \\<and> s'=s)"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
38 |
by (split_all_tac 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
39 |
by (rtac eval_evals_exec.induct 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
40 |
by (rewtac c_hupd_def); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
41 |
by (ALLGOALS Asm_full_simp_tac); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
42 |
qed "eval_evals_exec_xcpt"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
43 |
|
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
44 |
Goal "G\\<turnstile>(Some xc,s) -e\\<succ>v-> (x',s') ==> x'=Some xc \\<and> s'=s"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
45 |
by (dtac (eval_evals_exec_xcpt RS conjunct1 RS mp) 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
46 |
by (Fast_tac 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
47 |
qed "eval_xcpt"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
48 |
|
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
49 |
Goal "G\\<turnstile>(Some xc,s) -s0-> (x',s') ==> x'=Some xc \\<and> s'=s"; |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
50 |
by (dtac (eval_evals_exec_xcpt RS conjunct2 RS conjunct2 RS mp) 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
51 |
by (Fast_tac 1); |
78b1d6c3ee9c
improved superclass entry for classes and definition status of is_class, class
oheimb
parents:
10042
diff
changeset
|
52 |
qed "exec_xcpt"; |