src/HOL/Transcendental.thy
changeset 58729 e8ecc79aee43
parent 58710 7216a10d69ba
child 58740 cb9d84d3e7f2
equal deleted inserted replaced
58728:42398b610f86 58729:e8ecc79aee43
  1345 next
  1345 next
  1346   assume "\<not> 0 < x" with `x \<noteq> 0` show "isCont ln x"
  1346   assume "\<not> 0 < x" with `x \<noteq> 0` show "isCont ln x"
  1347     unfolding isCont_def
  1347     unfolding isCont_def
  1348     by (subst filterlim_cong[OF _ refl, of _ "nhds (ln 0)" _ "\<lambda>_. ln 0"])
  1348     by (subst filterlim_cong[OF _ refl, of _ "nhds (ln 0)" _ "\<lambda>_. ln 0"])
  1349        (auto simp: ln_neg_is_const not_less eventually_at dist_real_def
  1349        (auto simp: ln_neg_is_const not_less eventually_at dist_real_def
  1350                 intro!: tendsto_const exI[of _ "\<bar>x\<bar>"])
  1350                 intro!: exI[of _ "\<bar>x\<bar>"])
  1351 qed
  1351 qed
  1352 
  1352 
  1353 lemma tendsto_ln [tendsto_intros]:
  1353 lemma tendsto_ln [tendsto_intros]:
  1354   "(f ---> a) F \<Longrightarrow> a \<noteq> 0 \<Longrightarrow> ((\<lambda>x. ln (f x)) ---> ln a) F"
  1354   "(f ---> a) F \<Longrightarrow> a \<noteq> 0 \<Longrightarrow> ((\<lambda>x. ln (f x)) ---> ln a) F"
  1355   by (rule isCont_tendsto_compose [OF isCont_ln])
  1355   by (rule isCont_tendsto_compose [OF isCont_ln])
  2212   proof (rule filterlim_mono_eventually)
  2212   proof (rule filterlim_mono_eventually)
  2213     show "eventually (\<lambda>xa. exp (ln (1 + x * xa) / xa) = (1 + x * xa) powr (1 / xa)) (at_right 0)"
  2213     show "eventually (\<lambda>xa. exp (ln (1 + x * xa) / xa) = (1 + x * xa) powr (1 / xa)) (at_right 0)"
  2214       unfolding eventually_at_right[OF zero_less_one]
  2214       unfolding eventually_at_right[OF zero_less_one]
  2215       using `x \<noteq> 0` by (intro exI[of _ "1 / \<bar>x\<bar>"]) (auto simp: field_simps powr_def)
  2215       using `x \<noteq> 0` by (intro exI[of _ "1 / \<bar>x\<bar>"]) (auto simp: field_simps powr_def)
  2216   qed (simp_all add: at_eq_sup_left_right)
  2216   qed (simp_all add: at_eq_sup_left_right)
  2217 qed (simp add: tendsto_const)
  2217 qed simp
  2218 
  2218 
  2219 lemma tendsto_exp_limit_at_top:
  2219 lemma tendsto_exp_limit_at_top:
  2220   fixes x :: real
  2220   fixes x :: real
  2221   shows "((\<lambda>y. (1 + x / y) powr y) ---> exp x) at_top"
  2221   shows "((\<lambda>y. (1 + x / y) powr y) ---> exp x) at_top"
  2222   apply (subst filterlim_at_top_to_right)
  2222   apply (subst filterlim_at_top_to_right)
  3731   assumes "\<bar>x\<bar> \<le> 1"
  3731   assumes "\<bar>x\<bar> \<le> 1"
  3732   shows "(\<lambda> n. 1 / real (n*2+1) * x^(n*2+1)) ----> 0" (is "?a ----> 0")
  3732   shows "(\<lambda> n. 1 / real (n*2+1) * x^(n*2+1)) ----> 0" (is "?a ----> 0")
  3733 proof (cases "x = 0")
  3733 proof (cases "x = 0")
  3734   case True
  3734   case True
  3735   thus ?thesis
  3735   thus ?thesis
  3736     unfolding One_nat_def by (auto simp add: tendsto_const)
  3736     unfolding One_nat_def by auto
  3737 next
  3737 next
  3738   case False
  3738   case False
  3739   have "norm x \<le> 1" and "x \<le> 1" and "-1 \<le> x" using assms by auto
  3739   have "norm x \<le> 1" and "x \<le> 1" and "-1 \<le> x" using assms by auto
  3740   show "?a ----> 0"
  3740   show "?a ----> 0"
  3741   proof (cases "\<bar>x\<bar> < 1")
  3741   proof (cases "\<bar>x\<bar> < 1")