equal
deleted
inserted
replaced
4 Copyright 1999 Technische Universitaet Muenchen |
4 Copyright 1999 Technische Universitaet Muenchen |
5 *) |
5 *) |
6 |
6 |
7 Goalw [m_head_def] |
7 Goalw [m_head_def] |
8 "\\<lbrakk> m_head G T sig = Some (md,rT); wf_prog wtm G; G\\<turnstile>Class T''\\<preceq>RefT T\\<rbrakk> \\<Longrightarrow> \ |
8 "\\<lbrakk> m_head G T sig = Some (md,rT); wf_prog wtm G; G\\<turnstile>Class T''\\<preceq>RefT T\\<rbrakk> \\<Longrightarrow> \ |
9 \\\<exists>md' rT' b'. cmethd (G,T'') sig = Some (md',rT',b') \\<and> G\\<turnstile>rT'\\<preceq>rT"; |
9 \\\<exists>md' rT' b'. method (G,T'') sig = Some (md',rT',b') \\<and> G\\<turnstile>rT'\\<preceq>rT"; |
10 by( forward_tac [widen_Class_RefT] 1); |
10 by( forward_tac [widen_Class_RefT] 1); |
11 by( etac exE 1); |
11 by( etac exE 1); |
12 by( hyp_subst_tac 1); |
12 by( hyp_subst_tac 1); |
13 by( asm_full_simp_tac (simpset() delsimps [split_paired_Ex]) 1); |
13 by( asm_full_simp_tac (simpset() delsimps [split_paired_Ex]) 1); |
14 by( rewtac option_map_def); |
14 by( rewtac option_map_def); |
23 qed "widen_methd"; |
23 qed "widen_methd"; |
24 |
24 |
25 |
25 |
26 Goal |
26 Goal |
27 "\\<lbrakk>m_head G T sig = Some (md,rT); G\\<turnstile>Class T''\\<preceq>RefT T; wf_prog wtm G\\<rbrakk> \\<Longrightarrow> \ |
27 "\\<lbrakk>m_head G T sig = Some (md,rT); G\\<turnstile>Class T''\\<preceq>RefT T; wf_prog wtm G\\<rbrakk> \\<Longrightarrow> \ |
28 \ \\<exists>T' rT' b. cmethd (G,T'') sig = Some (T',rT',b) \\<and> \ |
28 \ \\<exists>T' rT' b. method (G,T'') sig = Some (T',rT',b) \\<and> \ |
29 \ G\\<turnstile>rT'\\<preceq>rT \\<and> G\\<turnstile>Class T''\\<preceq>Class T' \\<and> wf_mhead G sig rT' \\<and> wtm G T' (sig,rT',b)"; |
29 \ G\\<turnstile>rT'\\<preceq>rT \\<and> G\\<turnstile>Class T''\\<preceq>Class T' \\<and> wf_mhead G sig rT' \\<and> wtm G T' (sig,rT',b)"; |
30 by( dtac widen_methd 1); |
30 by( dtac widen_methd 1); |
31 by( atac 1); |
31 by( atac 1); |
32 by( atac 1); |
32 by( atac 1); |
33 by( Clarsimp_tac 1); |
33 by( Clarsimp_tac 1); |
34 by( dtac cmethd_wf_mdecl 1); |
34 by( dtac method_wf_mdecl 1); |
35 by( atac 1); |
35 by( atac 1); |
36 by( rewtac wf_mdecl_def); |
36 by( rewtac wf_mdecl_def); |
37 by Auto_tac; |
37 by Auto_tac; |
38 val Call_lemma = result(); |
38 val Call_lemma = result(); |
39 |
39 |