equal
deleted
inserted
replaced
764 apply clarsimp |
764 apply clarsimp |
765 apply (rule MGF_asm [THEN MGFNormalD]) |
765 apply (rule MGF_asm [THEN MGFNormalD]) |
766 apply (auto intro: MGFNormalI) |
766 apply (auto intro: MGFNormalI) |
767 done |
767 done |
768 |
768 |
769 lemma MGF_deriv: "wf_prog G \<Longrightarrow> G,({}::state triple set)\<turnstile>{\<doteq>} t\<succ> {G\<rightarrow>}" |
|
770 apply (rule MGF_asm) |
|
771 apply (intro strip) |
|
772 apply (rule MGFNormalI) |
|
773 apply (rule ax_derivs.weaken) |
|
774 apply (erule MGF_simult_Methd) |
|
775 apply auto |
|
776 done |
|
777 |
|
778 |
769 |
779 section "corollaries" |
770 section "corollaries" |
780 |
771 |
781 lemma eval_to_evaln: "\<lbrakk>G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (Y', s');type_ok G t s; wf_prog G\<rbrakk> |
772 lemma eval_to_evaln: "\<lbrakk>G\<turnstile>s \<midarrow>t\<succ>\<rightarrow> (Y', s');type_ok G t s; wf_prog G\<rbrakk> |
782 \<Longrightarrow> \<exists>n. G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (Y', s')" |
773 \<Longrightarrow> \<exists>n. G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (Y', s')" |