src/HOL/Import/HOLLightReal.thy
changeset 44633 8a2fd7418435
parent 44282 f0de18b62d63
child 45051 c478d1876371
equal deleted inserted replaced
44632:076a45f65e12 44633:8a2fd7418435
   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'))"