src/HOL/Nonstandard_Analysis/Examples/NSPrimes.thy
changeset 70749 5d06b7bb9d22
parent 66453 cc19f7ca2ed6
child 73526 a3cc9fa1295d
equal deleted inserted replaced
70748:b3b84b71e398 70749:5d06b7bb9d22
   196 lemma inj_injf_max: "\<forall>x. \<exists>y \<in> E. x < y \<Longrightarrow> inj (\<lambda>n. injf_max n E)"
   196 lemma inj_injf_max: "\<forall>x. \<exists>y \<in> E. x < y \<Longrightarrow> inj (\<lambda>n. injf_max n E)"
   197   apply (rule inj_onI)
   197   apply (rule inj_onI)
   198   apply (rule ccontr)
   198   apply (rule ccontr)
   199   apply auto
   199   apply auto
   200   apply (drule injf_max_order_preserving2)
   200   apply (drule injf_max_order_preserving2)
   201   apply (metis linorder_antisym_conv3 order_less_le)
   201   apply (metis antisym_conv3 order_less_le)
   202   done
   202   done
   203 
   203 
   204 lemma infinite_set_has_order_preserving_inj:
   204 lemma infinite_set_has_order_preserving_inj:
   205   "E \<noteq> {} \<Longrightarrow> \<forall>x. \<exists>y \<in> E. x < y \<Longrightarrow> \<exists>f. range f \<subseteq> E \<and> inj f \<and> (\<forall>m. f m < f (Suc m))"
   205   "E \<noteq> {} \<Longrightarrow> \<forall>x. \<exists>y \<in> E. x < y \<Longrightarrow> \<exists>f. range f \<subseteq> E \<and> inj f \<and> (\<forall>m. f m < f (Suc m))"
   206   for E :: "'a::order set" and f :: "nat \<Rightarrow> 'a"
   206   for E :: "'a::order set" and f :: "nat \<Rightarrow> 'a"