equal
deleted
inserted
replaced
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" |