added NT case for method invocation
authorkleing
Thu, 09 Mar 2000 13:51:53 +0100
changeset 8387 b7c661c69f4a
parent 8386 3e56677d3b98
child 8388 b66d3c49cb8d
added NT case for method invocation
src/HOL/MicroJava/BV/BVSpecTypeSafe.ML
--- a/src/HOL/MicroJava/BV/BVSpecTypeSafe.ML	Thu Mar 09 13:50:58 2000 +0100
+++ b/src/HOL/MicroJava/BV/BVSpecTypeSafe.ML	Thu Mar 09 13:51:53 2000 +0100
@@ -280,65 +280,74 @@
 \\\<Longrightarrow> G,phi \\<turnstile>JVM state'\\<surd>";
 by(forward_tac [wt_jvm_progD] 1);
 by(etac exE 1);
-by (asm_full_simp_tac (simpset()addsimps[raise_xcpt_def]@defs1 
+by(asm_full_simp_tac (simpset() addsimps defs1) 1);
+by(Clarify_tac 1);
+by(exhaust_tac "X\\<noteq>NT" 1); 
+ by (asm_full_simp_tac (simpset()addsimps[raise_xcpt_def]@defs1 
 	addsplits [option.split]) 1);
-by (Clarify_tac 1);
-by (asm_full_simp_tac (simpset() addsimps defs1) 1);
-bd approx_stk_append_lemma 1;   
-by (Clarify_tac 1);
-by (asm_full_simp_tac (simpset() addsimps [approx_val_def]) 1);
-bd conf_RefTD 1;
-by (Clarify_tac 1);
-by(rename_tac "oloc oT ofs T'" 1);
-by (asm_full_simp_tac (simpset() addsimps defs1) 1);
-bd subtype_widen_methd 1;
+ by (Clarify_tac 1);
+ by (asm_full_simp_tac (simpset() addsimps defs1) 1);
+ bd approx_stk_append_lemma 1;   
+ by (Clarify_tac 1);
+ by (asm_full_simp_tac (simpset() addsimps [approx_val_def]) 1);
+ bd conf_RefTD 1;
+ by (Clarify_tac 1);
+ by(rename_tac "oloc oT ofs T'" 1);
+ by (asm_full_simp_tac (simpset() addsimps defs1) 1);
+ bd subtype_widen_methd 1;
+   ba 1;
   ba 1;
- ba 1;
-be exE 1;
-by(rename_tac "oT'" 1);
-by (Clarify_tac 1);
-by(subgoal_tac "G \\<turnstile> oT \\<preceq>C oT'" 1);
- by(forw_inst_tac [("C","oT")](standard(rotate_prems 1 method_wf_mdecl)) 2);
-  ba 2;
- by(Blast_tac 2);
-by (asm_full_simp_tac (simpset() addsimps defs1) 1);
-by(forward_tac [method_in_md] 1);
- ba 1;
- back();
- back();
-by (Clarify_tac 1);
-by (asm_full_simp_tac (simpset() addsimps defs1) 1);
-by (forward_tac [wt_jvm_prog_impl_wt_start] 1);
- ba 1;
- back();
-by (asm_full_simp_tac (simpset() addsimps [wt_start_def,sup_state_def]) 1);
-by (Clarify_tac 1);
+ be exE 1;
+ by(rename_tac "oT'" 1);
+ by (Clarify_tac 1);
+ by(subgoal_tac "G \\<turnstile> oT \\<preceq>C oT'" 1);
+  by(forw_inst_tac [("C","oT")](standard(rotate_prems 1 method_wf_mdecl)) 2);
+   ba 2;
+  by(Blast_tac 2);
+ by (asm_full_simp_tac (simpset() addsimps defs1) 1);
+ by(forward_tac [method_in_md] 1);
+  ba 1;
+  back();
+  back();
+ by (Clarify_tac 1);
+ by (asm_full_simp_tac (simpset() addsimps defs1) 1);
+ by (forward_tac [wt_jvm_prog_impl_wt_start] 1);
+  ba 1;
+  back();
+ by (asm_full_simp_tac (simpset() addsimps [wt_start_def,sup_state_def]) 1);
+ by (Clarify_tac 1);
 
 (** approx_loc **)
-br conjI 1;
- br approx_loc_imp_approx_loc_sup 1;
-   ba 1;
-  by (Fast_tac 2);
- by (asm_full_simp_tac (simpset() addsimps [split_def,approx_val_def,approx_loc_append]) 1);
  br conjI 1;
-  br conf_widen 1;
+  br approx_loc_imp_approx_loc_sup 1;
     ba 1;
    by (Fast_tac 2);
-  by (asm_full_simp_tac (simpset() addsimps [conf_def]) 1);
+  by (asm_full_simp_tac (simpset() addsimps [split_def,approx_val_def,approx_loc_append]) 1);
+  br conjI 1;
+   br conf_widen 1;
+     ba 1;
+    by (Fast_tac 2);
+   by (asm_full_simp_tac (simpset() addsimps [conf_def]) 1);
+  br conjI 1;
+   by (fast_tac (claset() addIs [approx_stk_rev RS iffD2 RSN(4,assConv_approx_stk_imp_approx_loc)] 
+ 	addss (simpset() addsimps [split_def,approx_val_def])) 1);
+  by (asm_simp_tac (simpset() addsimps [list_all2_def,split_def,approx_loc_def,approx_val_None,set_replicate_conv_if]) 1);
+ 
  br conjI 1;
-  by (fast_tac (claset() addIs [approx_stk_rev RS iffD2 RSN(4,assConv_approx_stk_imp_approx_loc)] 
-	addss (simpset() addsimps [split_def,approx_val_def])) 1);
- by (asm_simp_tac (simpset() addsimps [list_all2_def,split_def,approx_loc_def,approx_val_None,set_replicate_conv_if]) 1);
-
-br conjI 1;
- by (asm_simp_tac (simpset() addsimps [min_def]) 1);
-br exI 1;
-br exI 1;
-br conjI 1;
- by(Blast_tac 1);
-by (fast_tac (claset()
-       addIs [approx_stk_imp_approx_stk_sup,approx_loc_imp_approx_loc_sup]
-       addss (simpset()addsimps [map_eq_Cons])) 1);
+  by (asm_simp_tac (simpset() addsimps [min_def]) 1);
+ br exI 1;
+ br exI 1;
+ br conjI 1;
+  by(Blast_tac 1);
+ by (fast_tac (claset()
+        addIs [approx_stk_imp_approx_stk_sup,approx_loc_imp_approx_loc_sup]
+        addss (simpset()addsimps [map_eq_Cons])) 1);
+by (Asm_full_simp_tac 1);
+bd approx_stk_append_lemma 1;
+by (Clarify_tac 1);
+by (asm_full_simp_tac (simpset() addsimps [approx_val_def, raise_xcpt_def]) 1);
+bd conf_NullTD 1;
+by (Asm_simp_tac 1);
 qed "Invoke_correct";
 
 Goal