equal
deleted
inserted
replaced
104 lemmas has_derivative_mult_right [derivative_intros] = |
104 lemmas has_derivative_mult_right [derivative_intros] = |
105 bounded_linear.has_derivative [OF bounded_linear_mult_right] |
105 bounded_linear.has_derivative [OF bounded_linear_mult_right] |
106 |
106 |
107 lemmas has_derivative_mult_left [derivative_intros] = |
107 lemmas has_derivative_mult_left [derivative_intros] = |
108 bounded_linear.has_derivative [OF bounded_linear_mult_left] |
108 bounded_linear.has_derivative [OF bounded_linear_mult_left] |
|
109 |
|
110 lemmas has_derivative_of_real[derivative_intros, simp] = |
|
111 bounded_linear.has_derivative[OF bounded_linear_of_real] |
109 |
112 |
110 lemma has_derivative_add[simp, derivative_intros]: |
113 lemma has_derivative_add[simp, derivative_intros]: |
111 assumes f: "(f has_derivative f') F" |
114 assumes f: "(f has_derivative f') F" |
112 and g: "(g has_derivative g') F" |
115 and g: "(g has_derivative g') F" |
113 shows "((\<lambda>x. f x + g x) has_derivative (\<lambda>x. f' x + g' x)) F" |
116 shows "((\<lambda>x. f x + g x) has_derivative (\<lambda>x. f' x + g' x)) F" |
791 lemma has_vector_derivative_of_real[derivative_intros]: |
794 lemma has_vector_derivative_of_real[derivative_intros]: |
792 "(f has_field_derivative D) F \<Longrightarrow> ((\<lambda>x. of_real (f x)) has_vector_derivative (of_real D)) F" |
795 "(f has_field_derivative D) F \<Longrightarrow> ((\<lambda>x. of_real (f x)) has_vector_derivative (of_real D)) F" |
793 by (rule bounded_linear.has_vector_derivative[OF bounded_linear_of_real]) |
796 by (rule bounded_linear.has_vector_derivative[OF bounded_linear_of_real]) |
794 (simp add: has_field_derivative_iff_has_vector_derivative) |
797 (simp add: has_field_derivative_iff_has_vector_derivative) |
795 |
798 |
|
799 lemma has_vector_derivative_real_field: |
|
800 "(f has_field_derivative f') (at (of_real a)) \<Longrightarrow> ((\<lambda>x. f (of_real x)) has_vector_derivative f') (at a within s)" |
|
801 using has_derivative_compose[of of_real of_real a _ f "(*) f'"] |
|
802 by (simp add: scaleR_conv_of_real ac_simps has_vector_derivative_def has_field_derivative_def) |
|
803 |
796 lemma has_vector_derivative_continuous: |
804 lemma has_vector_derivative_continuous: |
797 "(f has_vector_derivative D) (at x within s) \<Longrightarrow> continuous (at x within s) f" |
805 "(f has_vector_derivative D) (at x within s) \<Longrightarrow> continuous (at x within s) f" |
798 by (auto intro: has_derivative_continuous simp: has_vector_derivative_def) |
806 by (auto intro: has_derivative_continuous simp: has_vector_derivative_def) |
799 |
807 |
800 lemma continuous_on_vector_derivative: |
808 lemma continuous_on_vector_derivative: |
1082 by eventually_elim auto |
1090 by eventually_elim auto |
1083 qed |
1091 qed |
1084 |
1092 |
1085 lemmas has_derivative_floor[derivative_intros] = |
1093 lemmas has_derivative_floor[derivative_intros] = |
1086 floor_has_real_derivative[THEN DERIV_compose_FDERIV] |
1094 floor_has_real_derivative[THEN DERIV_compose_FDERIV] |
|
1095 |
|
1096 lemma continuous_floor: |
|
1097 fixes x::real |
|
1098 shows "x \<notin> \<int> \<Longrightarrow> continuous (at x) (real_of_int \<circ> floor)" |
|
1099 using floor_has_real_derivative [where f=id] |
|
1100 by (auto simp: o_def has_field_derivative_def intro: has_derivative_continuous) |
|
1101 |
|
1102 lemma continuous_frac: |
|
1103 fixes x::real |
|
1104 assumes "x \<notin> \<int>" |
|
1105 shows "continuous (at x) frac" |
|
1106 proof - |
|
1107 have "isCont (\<lambda>x. real_of_int \<lfloor>x\<rfloor>) x" |
|
1108 using continuous_floor [OF assms] by (simp add: o_def) |
|
1109 then have *: "continuous (at x) (\<lambda>x. x - real_of_int \<lfloor>x\<rfloor>)" |
|
1110 by (intro continuous_intros) |
|
1111 moreover have "\<forall>\<^sub>F x in nhds x. frac x = x - real_of_int \<lfloor>x\<rfloor>" |
|
1112 by (simp add: frac_def) |
|
1113 ultimately show ?thesis |
|
1114 by (simp add: LIM_imp_LIM frac_def isCont_def) |
|
1115 qed |
1087 |
1116 |
1088 text \<open>Caratheodory formulation of derivative at a point\<close> |
1117 text \<open>Caratheodory formulation of derivative at a point\<close> |
1089 |
1118 |
1090 lemma CARAT_DERIV: |
1119 lemma CARAT_DERIV: |
1091 "(DERIV f x :> l) \<longleftrightarrow> (\<exists>g. (\<forall>z. f z - f x = g z * (z - x)) \<and> isCont g x \<and> g x = l)" |
1120 "(DERIV f x :> l) \<longleftrightarrow> (\<exists>g. (\<forall>z. f z - f x = g z * (z - x)) \<and> isCont g x \<and> g x = l)" |