equal
deleted
inserted
replaced
62 |
62 |
63 subsection \<open>The set of integers is also infinite\<close> |
63 subsection \<open>The set of integers is also infinite\<close> |
64 |
64 |
65 lemma infinite_int_iff_infinite_nat_abs: "infinite S \<longleftrightarrow> infinite ((nat \<circ> abs) ` S)" |
65 lemma infinite_int_iff_infinite_nat_abs: "infinite S \<longleftrightarrow> infinite ((nat \<circ> abs) ` S)" |
66 for S :: "int set" |
66 for S :: "int set" |
67 by (auto simp: transfer_nat_int_set_relations o_def image_comp dest: finite_image_absD) |
67 proof - |
|
68 have "inj_on nat (abs ` A)" for A |
|
69 by (rule inj_onI) auto |
|
70 then show ?thesis |
|
71 by (auto simp add: image_comp [symmetric] dest: finite_image_absD finite_imageD) |
|
72 qed |
68 |
73 |
69 proposition infinite_int_iff_unbounded_le: "infinite S \<longleftrightarrow> (\<forall>m. \<exists>n. \<bar>n\<bar> \<ge> m \<and> n \<in> S)" |
74 proposition infinite_int_iff_unbounded_le: "infinite S \<longleftrightarrow> (\<forall>m. \<exists>n. \<bar>n\<bar> \<ge> m \<and> n \<in> S)" |
70 for S :: "int set" |
75 for S :: "int set" |
71 by (simp add: infinite_int_iff_infinite_nat_abs infinite_nat_iff_unbounded_le o_def image_def) |
76 by (simp add: infinite_int_iff_infinite_nat_abs infinite_nat_iff_unbounded_le o_def image_def) |
72 (metis abs_ge_zero nat_le_eq_zle le_nat_iff) |
77 (metis abs_ge_zero nat_le_eq_zle le_nat_iff) |
179 lemma MOST_SucI: "MOST n. P n \<Longrightarrow> MOST n. P (Suc n)" |
184 lemma MOST_SucI: "MOST n. P n \<Longrightarrow> MOST n. P (Suc n)" |
180 and MOST_SucD: "MOST n. P (Suc n) \<Longrightarrow> MOST n. P n" |
185 and MOST_SucD: "MOST n. P (Suc n) \<Longrightarrow> MOST n. P n" |
181 by (simp_all add: MOST_Suc_iff) |
186 by (simp_all add: MOST_Suc_iff) |
182 |
187 |
183 lemma MOST_ge_nat: "MOST n::nat. m \<le> n" |
188 lemma MOST_ge_nat: "MOST n::nat. m \<le> n" |
184 by (simp add: cofinite_eq_sequentially eventually_ge_at_top) |
189 by (simp add: cofinite_eq_sequentially) |
185 |
190 |
186 (* legacy names *) |
191 (* legacy names *) |
187 lemma Inf_many_def: "Inf_many P \<longleftrightarrow> infinite {x. P x}" by (fact frequently_cofinite) |
192 lemma Inf_many_def: "Inf_many P \<longleftrightarrow> infinite {x. P x}" by (fact frequently_cofinite) |
188 lemma Alm_all_def: "Alm_all P \<longleftrightarrow> \<not> (INFM x. \<not> P x)" by simp |
193 lemma Alm_all_def: "Alm_all P \<longleftrightarrow> \<not> (INFM x. \<not> P x)" by simp |
189 lemma INFM_iff_infinite: "(INFM x. P x) \<longleftrightarrow> infinite {x. P x}" by (fact frequently_cofinite) |
194 lemma INFM_iff_infinite: "(INFM x. P x) \<longleftrightarrow> infinite {x. P x}" by (fact frequently_cofinite) |