equal
deleted
inserted
replaced
299 |
299 |
300 lemma REAL_COMPLETE: |
300 lemma REAL_COMPLETE: |
301 "(\<exists>(x :: real). P x) \<and> (\<exists>(M :: real). \<forall>x. P x \<longrightarrow> x \<le> M) \<longrightarrow> |
301 "(\<exists>(x :: real). P x) \<and> (\<exists>(M :: real). \<forall>x. P x \<longrightarrow> x \<le> M) \<longrightarrow> |
302 (\<exists>M. (\<forall>x. P x \<longrightarrow> x \<le> M) \<and> |
302 (\<exists>M. (\<forall>x. P x \<longrightarrow> x \<le> M) \<and> |
303 (\<forall>M'. (\<forall>x. P x \<longrightarrow> x \<le> M') \<longrightarrow> M \<le> M'))" |
303 (\<forall>M'. (\<forall>x. P x \<longrightarrow> x \<le> M') \<longrightarrow> M \<le> M'))" |
304 apply (intro allI impI, elim conjE) |
304 using complete_real[unfolded Ball_def, of "Collect P"] by auto |
305 apply (drule complete_real[unfolded Ball_def mem_def]) |
|
306 apply simp_all |
|
307 done |
|
308 |
305 |
309 lemma REAL_COMPLETE_SOMEPOS: |
306 lemma REAL_COMPLETE_SOMEPOS: |
310 "(\<exists>(x :: real). P x \<and> 0 \<le> x) \<and> (\<exists>M. \<forall>x. P x \<longrightarrow> x \<le> M) \<longrightarrow> |
307 "(\<exists>(x :: real). P x \<and> 0 \<le> x) \<and> (\<exists>M. \<forall>x. P x \<longrightarrow> x \<le> M) \<longrightarrow> |
311 (\<exists>M. (\<forall>x. P x \<longrightarrow> x \<le> M) \<and> |
308 (\<exists>M. (\<forall>x. P x \<longrightarrow> x \<le> M) \<and> |
312 (\<forall>M'. (\<forall>x. P x \<longrightarrow> x \<le> M') \<longrightarrow> M \<le> M'))" |
309 (\<forall>M'. (\<forall>x. P x \<longrightarrow> x \<le> M') \<longrightarrow> M \<le> M'))" |