equal
deleted
inserted
replaced
1512 "\<lbrakk>table_of (methods c) sig = Some new; |
1512 "\<lbrakk>table_of (methods c) sig = Some new; |
1513 ws_prog G; class G C = Some c; C \<noteq> Object; |
1513 ws_prog G; class G C = Some c; C \<noteq> Object; |
1514 methd G (super c) sig = Some old\<rbrakk> |
1514 methd G (super c) sig = Some old\<rbrakk> |
1515 \<Longrightarrow> methd G C sig = Some (C,new)" |
1515 \<Longrightarrow> methd G C sig = Some (C,new)" |
1516 by (auto simp add: methd_rec |
1516 by (auto simp add: methd_rec |
1517 intro: filter_tab_SomeI override_find_right table_of_map_SomeI) |
1517 intro: filter_tab_SomeI map_add_find_right table_of_map_SomeI) |
1518 |
1518 |
1519 lemma wf_prog_staticD: |
1519 lemma wf_prog_staticD: |
1520 assumes wf: "wf_prog G" and |
1520 assumes wf: "wf_prog G" and |
1521 clsC: "class G C = Some c" and |
1521 clsC: "class G C = Some c" and |
1522 neq_C_Obj: "C \<noteq> Object" and |
1522 neq_C_Obj: "C \<noteq> Object" and |
1665 with inheritable member superAccessible subcls1_C_super |
1665 with inheritable member superAccessible subcls1_C_super |
1666 have inherits: "G\<turnstile>C inherits (method sig super_method)" |
1666 have inherits: "G\<turnstile>C inherits (method sig super_method)" |
1667 by (auto simp add: inherits_def) |
1667 by (auto simp add: inherits_def) |
1668 with clsC ws no_new super neq_C_Obj |
1668 with clsC ws no_new super neq_C_Obj |
1669 have "methd G C sig = Some super_method" |
1669 have "methd G C sig = Some super_method" |
1670 by (auto simp add: methd_rec override_def |
1670 by (auto simp add: methd_rec map_add_def intro: filter_tab_SomeI) |
1671 intro: filter_tab_SomeI) |
|
1672 with None show ?thesis |
1671 with None show ?thesis |
1673 by simp |
1672 by simp |
1674 qed |
1673 qed |
1675 with super show ?thesis by auto |
1674 with super show ?thesis by auto |
1676 next |
1675 next |