1268 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_div_algebra" |
1268 fixes f :: "'a::topological_space \<Rightarrow> 'b::real_normed_div_algebra" |
1269 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
1269 assumes "continuous_on s f" and "\<forall>x\<in>s. f x \<noteq> 0" |
1270 shows "continuous_on s (\<lambda>x. power_int (f x) n)" |
1270 shows "continuous_on s (\<lambda>x. power_int (f x) n)" |
1271 using assms unfolding continuous_on_def by (blast intro: tendsto_power_int) |
1271 using assms unfolding continuous_on_def by (blast intro: tendsto_power_int) |
1272 |
1272 |
|
1273 lemma tendsto_power_int' [tendsto_intros]: |
|
1274 fixes a :: "'a::real_normed_div_algebra" |
|
1275 assumes f: "(f \<longlongrightarrow> a) F" |
|
1276 and a: "a \<noteq> 0 \<or> n \<ge> 0" |
|
1277 shows "((\<lambda>x. power_int (f x) n) \<longlongrightarrow> power_int a n) F" |
|
1278 using assms by (cases n rule: int_cases4) (auto intro!: tendsto_intros simp: power_int_minus) |
|
1279 |
1273 lemma tendsto_sgn [tendsto_intros]: "(f \<longlongrightarrow> l) F \<Longrightarrow> l \<noteq> 0 \<Longrightarrow> ((\<lambda>x. sgn (f x)) \<longlongrightarrow> sgn l) F" |
1280 lemma tendsto_sgn [tendsto_intros]: "(f \<longlongrightarrow> l) F \<Longrightarrow> l \<noteq> 0 \<Longrightarrow> ((\<lambda>x. sgn (f x)) \<longlongrightarrow> sgn l) F" |
1274 for l :: "'a::real_normed_vector" |
1281 for l :: "'a::real_normed_vector" |
1275 unfolding sgn_div_norm by (simp add: tendsto_intros) |
1282 unfolding sgn_div_norm by (simp add: tendsto_intros) |
1276 |
1283 |
1277 lemma continuous_sgn: |
1284 lemma continuous_sgn: |
1780 by (auto intro: filterlim_at_infinity_imp_eventually_ne tendsto_imp_eventually_ne eventually_conj) |
1787 by (auto intro: filterlim_at_infinity_imp_eventually_ne tendsto_imp_eventually_ne eventually_conj) |
1781 then show ?thesis |
1788 then show ?thesis |
1782 by (subst filterlim_inverse_at_iff[symmetric]) simp_all |
1789 by (subst filterlim_inverse_at_iff[symmetric]) simp_all |
1783 qed |
1790 qed |
1784 |
1791 |
|
1792 lemma filterlim_power_int_neg_at_infinity: |
|
1793 fixes f :: "_ \<Rightarrow> 'a::{real_normed_div_algebra, division_ring}" |
|
1794 assumes "n < 0" and lim: "(f \<longlongrightarrow> 0) F" and ev: "eventually (\<lambda>x. f x \<noteq> 0) F" |
|
1795 shows "filterlim (\<lambda>x. f x powi n) at_infinity F" |
|
1796 proof - |
|
1797 have lim': "((\<lambda>x. f x ^ nat (- n)) \<longlongrightarrow> 0) F" |
|
1798 by (rule tendsto_eq_intros lim)+ (use \<open>n < 0\<close> in auto) |
|
1799 have ev': "eventually (\<lambda>x. f x ^ nat (-n) \<noteq> 0) F" |
|
1800 using ev by eventually_elim (use \<open>n < 0\<close> in auto) |
|
1801 have "filterlim (\<lambda>x. inverse (f x ^ nat (-n))) at_infinity F" |
|
1802 by (intro filterlim_compose[OF filterlim_inverse_at_infinity]) |
|
1803 (use lim' ev' in \<open>auto simp: filterlim_at\<close>) |
|
1804 thus ?thesis |
|
1805 using \<open>n < 0\<close> by (simp add: power_int_def power_inverse) |
|
1806 qed |
|
1807 |
1785 lemma tendsto_inverse_0_at_top: "LIM x F. f x :> at_top \<Longrightarrow> ((\<lambda>x. inverse (f x) :: real) \<longlongrightarrow> 0) F" |
1808 lemma tendsto_inverse_0_at_top: "LIM x F. f x :> at_top \<Longrightarrow> ((\<lambda>x. inverse (f x) :: real) \<longlongrightarrow> 0) F" |
1786 by (metis filterlim_at filterlim_mono[OF _ at_top_le_at_infinity order_refl] filterlim_inverse_at_iff) |
1809 by (metis filterlim_at filterlim_mono[OF _ at_top_le_at_infinity order_refl] filterlim_inverse_at_iff) |
1787 |
1810 |
1788 lemma filterlim_inverse_at_top_iff: |
1811 lemma filterlim_inverse_at_top_iff: |
1789 "eventually (\<lambda>x. 0 < f x) F \<Longrightarrow> (LIM x F. inverse (f x) :> at_top) \<longleftrightarrow> (f \<longlongrightarrow> (0 :: real)) F" |
1812 "eventually (\<lambda>x. 0 < f x) F \<Longrightarrow> (LIM x F. inverse (f x) :> at_top) \<longleftrightarrow> (f \<longlongrightarrow> (0 :: real)) F" |
1934 fixes c :: real |
1957 fixes c :: real |
1935 assumes c: "(f \<longlongrightarrow> c) F" "c < 0" and g: "filterlim g at_top F" |
1958 assumes c: "(f \<longlongrightarrow> c) F" "c < 0" and g: "filterlim g at_top F" |
1936 shows "LIM x F. f x * g x :> at_bot" |
1959 shows "LIM x F. f x * g x :> at_bot" |
1937 using c filterlim_tendsto_pos_mult_at_top[of "\<lambda>x. - f x" "- c" F, OF _ _ g] |
1960 using c filterlim_tendsto_pos_mult_at_top[of "\<lambda>x. - f x" "- c" F, OF _ _ g] |
1938 unfolding filterlim_uminus_at_bot tendsto_minus_cancel_left by simp |
1961 unfolding filterlim_uminus_at_bot tendsto_minus_cancel_left by simp |
|
1962 |
|
1963 |
|
1964 lemma filterlim_cmult_at_bot_at_top: |
|
1965 assumes "filterlim (h :: _ \<Rightarrow> real) at_top F" "c \<noteq> 0" "G = (if c > 0 then at_top else at_bot)" |
|
1966 shows "filterlim (\<lambda>x. c * h x) G F" |
|
1967 using assms filterlim_tendsto_pos_mult_at_top[OF tendsto_const[of c], of h F] |
|
1968 filterlim_tendsto_neg_mult_at_bot[OF tendsto_const[of c], of h F] by simp |
1939 |
1969 |
1940 lemma filterlim_pow_at_top: |
1970 lemma filterlim_pow_at_top: |
1941 fixes f :: "'a \<Rightarrow> real" |
1971 fixes f :: "'a \<Rightarrow> real" |
1942 assumes "0 < n" |
1972 assumes "0 < n" |
1943 and f: "LIM x F. f x :> at_top" |
1973 and f: "LIM x F. f x :> at_top" |
2686 lemma LIMSEQ_realpow_zero: |
2716 lemma LIMSEQ_realpow_zero: |
2687 fixes x :: real |
2717 fixes x :: real |
2688 assumes "0 \<le> x" "x < 1" |
2718 assumes "0 \<le> x" "x < 1" |
2689 shows "(\<lambda>n. x ^ n) \<longlonglongrightarrow> 0" |
2719 shows "(\<lambda>n. x ^ n) \<longlonglongrightarrow> 0" |
2690 proof (cases "x = 0") |
2720 proof (cases "x = 0") |
2691 case False |
2721 case False |
2692 with \<open>0 \<le> x\<close> have x0: "0 < x" by simp |
2722 with \<open>0 \<le> x\<close> have "1 < inverse x" |
2693 then have "1 < inverse x" |
2723 using \<open>x < 1\<close> by (simp add: one_less_inverse) |
2694 using \<open>x < 1\<close> by (rule one_less_inverse) |
|
2695 then have "(\<lambda>n. inverse (inverse x ^ n)) \<longlonglongrightarrow> 0" |
2724 then have "(\<lambda>n. inverse (inverse x ^ n)) \<longlonglongrightarrow> 0" |
2696 by (rule LIMSEQ_inverse_realpow_zero) |
2725 by (rule LIMSEQ_inverse_realpow_zero) |
2697 then show ?thesis by (simp add: power_inverse) |
2726 then show ?thesis by (simp add: power_inverse) |
2698 next |
2727 next |
2699 case True |
2728 case True |