diff -r 325b8e754523 -r 6fc37b5c5e98 src/HOL/MicroJava/J/WellForm.ML --- a/src/HOL/MicroJava/J/WellForm.ML Thu Nov 25 12:30:57 1999 +0100 +++ b/src/HOL/MicroJava/J/WellForm.ML Fri Nov 26 08:46:59 1999 +0100 @@ -111,11 +111,11 @@ by( etac subcls1I 1); qed "subcls1_induct"; -Goal "wf_prog wtm G \\ cmethd (G,C) = \ +Goal "wf_prog wtm G \\ method (G,C) = \ \ (case class G C of None \\ empty | Some (sc,fs,ms) \\ \ -\ (case sc of None \\ empty | Some D \\ cmethd (G,D)) \\ \ +\ (case sc of None \\ empty | Some D \\ method (G,D)) \\ \ \ map_of (map (\\(s,m). (s,(C,m))) ms))"; -by( stac (cmethd_TC RS (wf_subcls1_rel RS (hd cmethd.rules))) 1); +by( stac (method_TC RS (wf_subcls1_rel RS (hd method.rules))) 1); by( clarsimp_tac (claset(), simpset() addsimps [wf_subcls1,empty_def] addsplits [option.split]) 1); by( case_tac "C = Object" 1); @@ -125,7 +125,7 @@ by( dtac wf_cdecl_supD 1); by( atac 1); by( Asm_full_simp_tac 1); -val cmethd_rec = result(); +val method_rec = result(); Goal "\\class G C = Some (sc,fs,ms); wf_prog wtm G\\ \\ fields (G,C) = \ \ map (\\(fn,ft). ((fn,C),ft)) fs @ \ @@ -144,14 +144,14 @@ by( Asm_full_simp_tac 1); val fields_rec = result(); -val cmethd_Object = prove_goal thy "\\X. wf_prog wtm G \\ cmethd (G,Object) = empty" - (K [stac cmethd_rec 1,Auto_tac]); +val method_Object = prove_goal thy "\\X. wf_prog wtm G \\ method (G,Object) = empty" + (K [stac method_rec 1,Auto_tac]); val fields_Object = prove_goal thy "\\X. wf_prog wtm G \\ fields (G,Object) = []"(K [ stac fields_rec 1,Auto_tac]); -Addsimps [cmethd_Object, fields_Object]; -val cfield_Object = prove_goalw thy [cfield_def] - "\\X. wf_prog wtm G \\ cfield (G,Object) = empty" (K [Asm_simp_tac 1]); -Addsimps [cfield_Object]; +Addsimps [method_Object, fields_Object]; +val field_Object = prove_goalw thy [field_def] + "\\X. wf_prog wtm G \\ field (G,Object) = empty" (K [Asm_simp_tac 1]); +Addsimps [field_Object]; val subcls_C_Object = prove_goal thy "\\X. \\is_class G C; wf_prog wtm G \\ \\ C \\ Object \\ G\\C\\C Object" (K [ @@ -264,24 +264,24 @@ val widen_fields_mono = result(); -val cfs_fields_lemma = prove_goalw thy [cfield_def] -"\\X. cfield (G,C) fn = Some (fd, fT) \\ map_of(fields (G,C)) (fn, fd) = Some fT" +val cfs_fields_lemma = prove_goalw thy [field_def] +"\\X. field (G,C) fn = Some (fd, fT) \\ map_of(fields (G,C)) (fn, fd) = Some fT" (K [rtac table_map_Some 1, Asm_full_simp_tac 1]); -val widen_cfs_fields = prove_goal thy "\\X. \\cfield (G,C) fn = Some (fd, fT);\ +val widen_cfs_fields = prove_goal thy "\\X. \\field (G,C) fn = Some (fd, fT);\ \ G\\Class C'\\Class C; wf_prog wtm G\\ \\ map_of (fields (G,C')) (fn, fd) = Some fT" (K[ fast_tac (HOL_cs addIs [widen_fields_mono, cfs_fields_lemma]) 1]); -Goal "wf_prog wtm G \\ cmethd (G,C) sig = Some (md,mh,m)\ +Goal "wf_prog wtm G \\ method (G,C) sig = Some (md,mh,m)\ \ \\ G\\Class C\\Class md \\ wf_mdecl wtm G md (sig,(mh,m))"; by( case_tac "is_class G C" 1); -by( forw_inst_tac [("C","C")] cmethd_rec 2); +by( forw_inst_tac [("C","C")] method_rec 2); by( asm_full_simp_tac (simpset() addsimps [is_class_def] delsimps [not_None_eq]) 2); by( etac subcls1_induct 1); by( atac 1); by( Force_tac 1); -by( forw_inst_tac [("C","C")] cmethd_rec 1); +by( forw_inst_tac [("C","C")] method_rec 1); by( strip_tac1 1); by( rotate_tac ~1 1); by( Asm_full_simp_tac 1); @@ -300,11 +300,11 @@ by( Asm_full_simp_tac 1); by( rewtac wf_cdecl_def); by( Asm_full_simp_tac 1); -val cmethd_wf_mdecl = result() RS mp; +val method_wf_mdecl = result() RS mp; Goal "\\G\\T\\C T'; wf_prog wt G\\ \\ \ -\ \\D rT b. cmethd (G,T') sig = Some (D,rT ,b) \\\ -\ (\\D' rT' b'. cmethd (G,T) sig = Some (D',rT',b') \\ G\\rT'\\rT)"; +\ \\D rT b. method (G,T') sig = Some (D,rT ,b) \\\ +\ (\\D' rT' b'. method (G,T) sig = Some (D',rT',b') \\ G\\rT'\\rT)"; by( etac trancl_trans_induct 1); by( strip_tac1 2); by( EVERY[dtac spec 2, dtac spec 2, dtac spec 2, mp_tac 2]); @@ -312,7 +312,7 @@ by( strip_tac1 1); by( dtac subcls1D 1); by( strip_tac1 1); -by( stac cmethd_rec 1); +by( stac method_rec 1); by( atac 1); by( rewtac override_def); by( asm_simp_tac (simpset() delsimps [split_paired_Ex]) 1); @@ -334,33 +334,33 @@ Goal "\\ G\\Class C\\Class D; wf_prog wt G; \ -\ cmethd (G,D) sig = Some (md, rT, b) \\ \ -\ \\ \\mD' rT' b'. cmethd (G,C) sig= Some(mD',rT',b') \\ G\\rT'\\rT"; +\ method (G,D) sig = Some (md, rT, b) \\ \ +\ \\ \\mD' rT' b'. method (G,C) sig= Some(mD',rT',b') \\ G\\rT'\\rT"; by(auto_tac (claset() addSDs [widen_Class_Class] - addDs [subcls_widen_methd,cmethd_wf_mdecl], + addDs [subcls_widen_methd,method_wf_mdecl], simpset() addsimps [wf_mdecl_def,wf_mhead_def,split_def])); qed "subtype_widen_methd"; -Goal "wf_prog wt G \\ \\D. cmethd (G,C) sig = Some(D,mh,code) \\ is_class G D \\ cmethd (G,D) sig = Some(D,mh,code)"; +Goal "wf_prog wt G \\ \\D. method (G,C) sig = Some(D,mh,code) \\ is_class G D \\ method (G,D) sig = Some(D,mh,code)"; by( case_tac "is_class G C" 1); -by( forw_inst_tac [("C","C")] cmethd_rec 2); +by( forw_inst_tac [("C","C")] method_rec 2); by( asm_full_simp_tac (simpset() addsimps [is_class_def] delsimps [not_None_eq]) 2); by (etac subcls1_induct 1); ba 1; by (Asm_full_simp_tac 1); -by (stac cmethd_rec 1); +by (stac method_rec 1); ba 1; by (Clarify_tac 1); by (eres_inst_tac [("x","Da")] allE 1); by (Clarsimp_tac 1); by (asm_full_simp_tac (simpset() addsimps [map_of_map]) 1); by (Clarify_tac 1); - by (stac cmethd_rec 1); + by (stac method_rec 1); ba 1; by (asm_full_simp_tac (simpset() addsimps [override_def,map_of_map] addsplits [option.split]) 1); -qed_spec_mp "cmethd_in_md"; +qed_spec_mp "method_in_md"; writeln"OK";