equal
deleted
inserted
replaced
1418 assume defC: "is_class G C" |
1418 assume defC: "is_class G C" |
1419 from defC ws |
1419 from defC ws |
1420 show "?Class C \<Longrightarrow> ?Method C \<Longrightarrow> ?MemberOf C" |
1420 show "?Class C \<Longrightarrow> ?Method C \<Longrightarrow> ?MemberOf C" |
1421 proof (induct rule: ws_class_induct') |
1421 proof (induct rule: ws_class_induct') |
1422 case Object |
1422 case Object |
1423 with wf have declC: "declclass m = Object" |
1423 with wf have declC: "Object = declclass m" |
1424 by (blast intro: declclass_methd_Object) |
1424 by (simp add: declclass_methd_Object) |
1425 with Object wf have "G\<turnstile>Methd sig m declared_in Object" |
1425 from Object wf have "G\<turnstile>Methd sig m declared_in Object" |
1426 by (auto dest: methd_declaredD simp del: methd_Object) |
1426 by (auto intro: methd_declaredD simp add: declC) |
1427 with declC |
1427 with declC |
1428 show "?MemberOf Object" |
1428 show "?MemberOf Object" |
1429 by (auto intro!: members.Immediate |
1429 by (auto intro!: members.Immediate |
1430 simp del: methd_Object) |
1430 simp del: methd_Object) |
1431 next |
1431 next |
2792 by auto |
2792 by auto |
2793 have not_static_emh: "\<not> is_static emh" |
2793 have not_static_emh: "\<not> is_static emh" |
2794 proof - |
2794 proof - |
2795 from im statM statT isT_statT wf not_Private_statM |
2795 from im statM statT isT_statT wf not_Private_statM |
2796 have "is_static im = is_static statM" |
2796 have "is_static im = is_static statM" |
2797 by (auto dest: wf_imethds_hiding_objmethdsD) |
2797 by (fastsimp dest: wf_imethds_hiding_objmethdsD) |
2798 with wf isT_statT statT im |
2798 with wf isT_statT statT im |
2799 have "\<not> is_static statM" |
2799 have "\<not> is_static statM" |
2800 by (auto dest: wf_prog_idecl imethds_wf_mhead) |
2800 by (auto dest: wf_prog_idecl imethds_wf_mhead) |
2801 with eq_mhds |
2801 with eq_mhds |
2802 show ?thesis |
2802 show ?thesis |