equal
deleted
inserted
replaced
1491 apply (subst suminf_of_real) |
1491 apply (subst suminf_of_real) |
1492 apply (rule summable_exp_generic) |
1492 apply (rule summable_exp_generic) |
1493 apply (simp add: scaleR_conv_of_real) |
1493 apply (simp add: scaleR_conv_of_real) |
1494 done |
1494 done |
1495 |
1495 |
|
1496 lemmas of_real_exp = exp_of_real[symmetric] |
|
1497 |
1496 corollary exp_in_Reals [simp]: "z \<in> \<real> \<Longrightarrow> exp z \<in> \<real>" |
1498 corollary exp_in_Reals [simp]: "z \<in> \<real> \<Longrightarrow> exp z \<in> \<real>" |
1497 by (metis Reals_cases Reals_of_real exp_of_real) |
1499 by (metis Reals_cases Reals_of_real exp_of_real) |
1498 |
1500 |
1499 lemma exp_not_eq_zero [simp]: "exp x \<noteq> 0" |
1501 lemma exp_not_eq_zero [simp]: "exp x \<noteq> 0" |
1500 proof |
1502 proof |
1792 using ln_le_cancel_iff [of 1 x] by simp |
1794 using ln_le_cancel_iff [of 1 x] by simp |
1793 |
1795 |
1794 lemma ln_less_zero_iff [simp]: "0 < x \<Longrightarrow> ln x < 0 \<longleftrightarrow> x < 1" |
1796 lemma ln_less_zero_iff [simp]: "0 < x \<Longrightarrow> ln x < 0 \<longleftrightarrow> x < 1" |
1795 for x :: real |
1797 for x :: real |
1796 using ln_less_cancel_iff [of x 1] by simp |
1798 using ln_less_cancel_iff [of x 1] by simp |
|
1799 |
|
1800 lemma ln_le_zero_iff [simp]: "0 < x \<Longrightarrow> ln x \<le> 0 \<longleftrightarrow> x \<le> 1" |
|
1801 for x :: real |
|
1802 by (metis less_numeral_extra(1) ln_le_cancel_iff ln_one) |
1797 |
1803 |
1798 lemma ln_gt_zero: "1 < x \<Longrightarrow> 0 < ln x" |
1804 lemma ln_gt_zero: "1 < x \<Longrightarrow> 0 < ln x" |
1799 for x :: real |
1805 for x :: real |
1800 using ln_less_cancel_iff [of 1 x] by simp |
1806 using ln_less_cancel_iff [of 1 x] by simp |
1801 |
1807 |
2344 by (intro filtermap_fun_inverse[of exp] exp_at_top ln_at_top) auto |
2350 by (intro filtermap_fun_inverse[of exp] exp_at_top ln_at_top) auto |
2345 |
2351 |
2346 lemma filtermap_exp_at_top: "filtermap (exp::real \<Rightarrow> real) at_top = at_top" |
2352 lemma filtermap_exp_at_top: "filtermap (exp::real \<Rightarrow> real) at_top = at_top" |
2347 by (intro filtermap_fun_inverse[of ln] exp_at_top ln_at_top) |
2353 by (intro filtermap_fun_inverse[of ln] exp_at_top ln_at_top) |
2348 (auto simp: eventually_at_top_dense) |
2354 (auto simp: eventually_at_top_dense) |
|
2355 |
|
2356 lemma filtermap_ln_at_right: "filtermap ln (at_right (0::real)) = at_bot" |
|
2357 by (auto intro!: filtermap_fun_inverse[where g="\<lambda>x. exp x"] ln_at_0 |
|
2358 simp: filterlim_at exp_at_bot) |
2349 |
2359 |
2350 lemma tendsto_power_div_exp_0: "((\<lambda>x. x ^ k / exp x) \<longlongrightarrow> (0::real)) at_top" |
2360 lemma tendsto_power_div_exp_0: "((\<lambda>x. x ^ k / exp x) \<longlongrightarrow> (0::real)) at_top" |
2351 proof (induct k) |
2361 proof (induct k) |
2352 case 0 |
2362 case 0 |
2353 show "((\<lambda>x. x ^ 0 / exp x) \<longlongrightarrow> (0::real)) at_top" |
2363 show "((\<lambda>x. x ^ 0 / exp x) \<longlongrightarrow> (0::real)) at_top" |