src/HOL/Library/Extended_Nat.thy
changeset 67091 1393c2340eec
parent 64267 b9a1486e79be
child 67689 2c38ffd6ec71
equal deleted inserted replaced
67090:0ec94bb9cec4 67091:1393c2340eec
   600 lemma less_infinityE:
   600 lemma less_infinityE:
   601   "[| n < \<infinity>; !!k. n = enat k ==> P |] ==> P"
   601   "[| n < \<infinity>; !!k. n = enat k ==> P |] ==> P"
   602 by (induct n) auto
   602 by (induct n) auto
   603 
   603 
   604 lemma enat_less_induct:
   604 lemma enat_less_induct:
   605   assumes prem: "!!n. \<forall>m::enat. m < n --> P m ==> P n" shows "P n"
   605   assumes prem: "\<And>n. \<forall>m::enat. m < n \<longrightarrow> P m \<Longrightarrow> P n" shows "P n"
   606 proof -
   606 proof -
   607   have P_enat: "!!k. P (enat k)"
   607   have P_enat: "\<And>k. P (enat k)"
   608     apply (rule nat_less_induct)
   608     apply (rule nat_less_induct)
   609     apply (rule prem, clarify)
   609     apply (rule prem, clarify)
   610     apply (erule less_enatE, simp)
   610     apply (erule less_enatE, simp)
   611     done
   611     done
   612   show ?thesis
   612   show ?thesis