src/HOL/Bali/Evaln.thy
changeset 39159 0dec18004e75
parent 35069 09154b995ed8
child 44890 22f665a2e91c
equal deleted inserted replaced
39158:e6b96b4cde7e 39159:0dec18004e75
   447 done
   447 done
   448 
   448 
   449 lemma evaln_nonstrict [rule_format (no_asm), elim]: 
   449 lemma evaln_nonstrict [rule_format (no_asm), elim]: 
   450   "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w, s') \<Longrightarrow> \<forall>m. n\<le>m \<longrightarrow> G\<turnstile>s \<midarrow>t\<succ>\<midarrow>m\<rightarrow> (w, s')"
   450   "G\<turnstile>s \<midarrow>t\<succ>\<midarrow>n\<rightarrow> (w, s') \<Longrightarrow> \<forall>m. n\<le>m \<longrightarrow> G\<turnstile>s \<midarrow>t\<succ>\<midarrow>m\<rightarrow> (w, s')"
   451 apply (erule evaln.induct)
   451 apply (erule evaln.induct)
   452 apply (tactic {* ALLGOALS (EVERY'[strip_tac, TRY o etac (thm "Suc_le_D_lemma"),
   452 apply (tactic {* ALLGOALS (EVERY'[strip_tac, TRY o etac @{thm Suc_le_D_lemma},
   453   REPEAT o smp_tac 1, 
   453   REPEAT o smp_tac 1, 
   454   resolve_tac (thms "evaln.intros") THEN_ALL_NEW TRY o atac]) *})
   454   resolve_tac @{thms evaln.intros} THEN_ALL_NEW TRY o atac]) *})
   455 (* 3 subgoals *)
   455 (* 3 subgoals *)
   456 apply (auto split del: split_if)
   456 apply (auto split del: split_if)
   457 done
   457 done
   458 
   458 
   459 lemmas evaln_nonstrict_Suc = evaln_nonstrict [OF _ le_refl [THEN le_SucI]]
   459 lemmas evaln_nonstrict_Suc = evaln_nonstrict [OF _ le_refl [THEN le_SucI]]