equal
deleted
inserted
replaced
173 by (blast dest: FreeUltrafilterNat_Compl FreeUltrafilterNat_Compl_mem) |
173 by (blast dest: FreeUltrafilterNat_Compl FreeUltrafilterNat_Compl_mem) |
174 |
174 |
175 lemma FreeUltrafilterNat_Compl_iff2: |
175 lemma FreeUltrafilterNat_Compl_iff2: |
176 "(X: FreeUltrafilterNat) = (-X \<notin> FreeUltrafilterNat)" |
176 "(X: FreeUltrafilterNat) = (-X \<notin> FreeUltrafilterNat)" |
177 by (auto simp add: FreeUltrafilterNat_Compl_iff1 [symmetric]) |
177 by (auto simp add: FreeUltrafilterNat_Compl_iff1 [symmetric]) |
|
178 |
|
179 lemma cofinite_mem_FreeUltrafilterNat: "finite (-X) ==> X \<in> FreeUltrafilterNat" |
|
180 apply (drule FreeUltrafilterNat_finite) |
|
181 apply (simp add: FreeUltrafilterNat_Compl_iff2 [symmetric]) |
|
182 done |
178 |
183 |
179 lemma FreeUltrafilterNat_UNIV [simp]: "(UNIV::nat set) \<in> FreeUltrafilterNat" |
184 lemma FreeUltrafilterNat_UNIV [simp]: "(UNIV::nat set) \<in> FreeUltrafilterNat" |
180 by (rule FreeUltrafilterNat_mem [THEN FreeUltrafilter_Ultrafilter, THEN Ultrafilter_Filter, THEN mem_FiltersetD4]) |
185 by (rule FreeUltrafilterNat_mem [THEN FreeUltrafilter_Ultrafilter, THEN Ultrafilter_Filter, THEN mem_FiltersetD4]) |
181 |
186 |
182 lemma FreeUltrafilterNat_Nat_set [simp]: "UNIV \<in> FreeUltrafilterNat" |
187 lemma FreeUltrafilterNat_Nat_set [simp]: "UNIV \<in> FreeUltrafilterNat" |
766 |
771 |
767 text{*A few lemmas first*} |
772 text{*A few lemmas first*} |
768 |
773 |
769 lemma lemma_omega_empty_singleton_disj: "{n::nat. x = real n} = {} | |
774 lemma lemma_omega_empty_singleton_disj: "{n::nat. x = real n} = {} | |
770 (\<exists>y. {n::nat. x = real n} = {y})" |
775 (\<exists>y. {n::nat. x = real n} = {y})" |
771 by (force dest: inj_real_of_nat [THEN injD]) |
776 by (force) |
772 |
777 |
773 lemma lemma_finite_omega_set: "finite {n::nat. x = real n}" |
778 lemma lemma_finite_omega_set: "finite {n::nat. x = real n}" |
774 by (cut_tac x = x in lemma_omega_empty_singleton_disj, auto) |
779 by (cut_tac x = x in lemma_omega_empty_singleton_disj, auto) |
775 |
780 |
776 lemma not_ex_hypreal_of_real_eq_omega: |
781 lemma not_ex_hypreal_of_real_eq_omega: |
787 real number*} |
792 real number*} |
788 |
793 |
789 lemma lemma_epsilon_empty_singleton_disj: |
794 lemma lemma_epsilon_empty_singleton_disj: |
790 "{n::nat. x = inverse(real(Suc n))} = {} | |
795 "{n::nat. x = inverse(real(Suc n))} = {} | |
791 (\<exists>y. {n::nat. x = inverse(real(Suc n))} = {y})" |
796 (\<exists>y. {n::nat. x = inverse(real(Suc n))} = {y})" |
792 by (auto simp add: inj_real_of_nat [THEN inj_eq]) |
797 by (auto) |
793 |
798 |
794 lemma lemma_finite_epsilon_set: "finite {n. x = inverse(real(Suc n))}" |
799 lemma lemma_finite_epsilon_set: "finite {n. x = inverse(real(Suc n))}" |
795 by (cut_tac x = x in lemma_epsilon_empty_singleton_disj, auto) |
800 by (cut_tac x = x in lemma_epsilon_empty_singleton_disj, auto) |
796 |
801 |
797 lemma not_ex_hypreal_of_real_eq_epsilon: |
802 lemma not_ex_hypreal_of_real_eq_epsilon: |