equal
deleted
inserted
replaced
78 |
78 |
79 lemma has_derivative_linear: "(f has_derivative f') F \<Longrightarrow> linear f'" |
79 lemma has_derivative_linear: "(f has_derivative f') F \<Longrightarrow> linear f'" |
80 using bounded_linear.linear[OF has_derivative_bounded_linear] . |
80 using bounded_linear.linear[OF has_derivative_bounded_linear] . |
81 |
81 |
82 lemma has_derivative_ident[derivative_intros, simp]: "((\<lambda>x. x) has_derivative (\<lambda>x. x)) F" |
82 lemma has_derivative_ident[derivative_intros, simp]: "((\<lambda>x. x) has_derivative (\<lambda>x. x)) F" |
83 by (simp add: has_derivative_def tendsto_const) |
83 by (simp add: has_derivative_def) |
84 |
84 |
85 lemma has_derivative_const[derivative_intros, simp]: "((\<lambda>x. c) has_derivative (\<lambda>x. 0)) F" |
85 lemma has_derivative_const[derivative_intros, simp]: "((\<lambda>x. c) has_derivative (\<lambda>x. 0)) F" |
86 by (simp add: has_derivative_def tendsto_const) |
86 by (simp add: has_derivative_def) |
87 |
87 |
88 lemma (in bounded_linear) bounded_linear: "bounded_linear f" .. |
88 lemma (in bounded_linear) bounded_linear: "bounded_linear f" .. |
89 |
89 |
90 lemma (in bounded_linear) has_derivative: |
90 lemma (in bounded_linear) has_derivative: |
91 "(g has_derivative g') F \<Longrightarrow> ((\<lambda>x. f (g x)) has_derivative (\<lambda>x. f (g' x))) F" |
91 "(g has_derivative g') F \<Longrightarrow> ((\<lambda>x. f (g x)) has_derivative (\<lambda>x. f (g' x))) F" |
178 show "((\<lambda>y. norm (f y - f x - f' (y - x)) / norm (y - x)) ---> 0) (at x within s)" |
178 show "((\<lambda>y. norm (f y - f x - f' (y - x)) / norm (y - x)) ---> 0) (at x within s)" |
179 proof (rule tendsto_sandwich[where f="\<lambda>x. 0"]) |
179 proof (rule tendsto_sandwich[where f="\<lambda>x. 0"]) |
180 show "(H ---> 0) (at x within s)" by fact |
180 show "(H ---> 0) (at x within s)" by fact |
181 show "eventually (\<lambda>n. norm (f n - f x - f' (n - x)) / norm (n - x) \<le> H n) (at x within s)" |
181 show "eventually (\<lambda>n. norm (f n - f x - f' (n - x)) / norm (n - x) \<le> H n) (at x within s)" |
182 unfolding eventually_at using e sandwich by auto |
182 unfolding eventually_at using e sandwich by auto |
183 qed (auto simp: le_divide_eq tendsto_const) |
183 qed (auto simp: le_divide_eq) |
184 qed fact |
184 qed fact |
185 |
185 |
186 lemma has_derivative_subset: "(f has_derivative f') (at x within s) \<Longrightarrow> t \<subseteq> s \<Longrightarrow> (f has_derivative f') (at x within t)" |
186 lemma has_derivative_subset: "(f has_derivative f') (at x within s) \<Longrightarrow> t \<subseteq> s \<Longrightarrow> (f has_derivative f') (at x within t)" |
187 by (auto simp add: has_derivative_iff_norm intro: tendsto_within_subset) |
187 by (auto simp add: has_derivative_iff_norm intro: tendsto_within_subset) |
188 |
188 |
1581 unfolding eventually_at by (intro exI[of _ a]) (auto simp: dist_real_def) |
1581 unfolding eventually_at by (intro exI[of _ a]) (auto simp: dist_real_def) |
1582 moreover |
1582 moreover |
1583 from \<zeta> have "eventually (\<lambda>x. norm (\<zeta> x) \<le> x) (at_right 0)" |
1583 from \<zeta> have "eventually (\<lambda>x. norm (\<zeta> x) \<le> x) (at_right 0)" |
1584 by eventually_elim auto |
1584 by eventually_elim auto |
1585 then have "((\<lambda>x. norm (\<zeta> x)) ---> 0) (at_right 0)" |
1585 then have "((\<lambda>x. norm (\<zeta> x)) ---> 0) (at_right 0)" |
1586 by (rule_tac real_tendsto_sandwich[where f="\<lambda>x. 0" and h="\<lambda>x. x"]) |
1586 by (rule_tac real_tendsto_sandwich[where f="\<lambda>x. 0" and h="\<lambda>x. x"]) auto |
1587 (auto intro: tendsto_const tendsto_ident_at) |
|
1588 then have "(\<zeta> ---> 0) (at_right 0)" |
1587 then have "(\<zeta> ---> 0) (at_right 0)" |
1589 by (rule tendsto_norm_zero_cancel) |
1588 by (rule tendsto_norm_zero_cancel) |
1590 with \<zeta> have "filterlim \<zeta> (at_right 0) (at_right 0)" |
1589 with \<zeta> have "filterlim \<zeta> (at_right 0) (at_right 0)" |
1591 by (auto elim!: eventually_elim1 simp: filterlim_at) |
1590 by (auto elim!: eventually_elim1 simp: filterlim_at) |
1592 from this lim have "((\<lambda>t. f' (\<zeta> t) / g' (\<zeta> t)) ---> x) (at_right 0)" |
1591 from this lim have "((\<lambda>t. f' (\<zeta> t) / g' (\<zeta> t)) ---> x) (at_right 0)" |