[STATEMENT]
lemma summable_norm_exp: "summable (\<lambda>n. norm (x^n /\<^sub>R fact n))"
  for x :: "'a::{real_normed_algebra_1,banach}"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. summable (\<lambda>n. norm (x ^ n /\<^sub>R fact n))
[PROOF STEP]
proof (rule summable_norm_comparison_test [OF exI, rule_format])
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>n. ?N \<le> n \<Longrightarrow> norm (x ^ n /\<^sub>R fact n) \<le> ?g n
 2. summable ?g
[PROOF STEP]
show "summable (\<lambda>n. norm x^n /\<^sub>R fact n)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. summable (\<lambda>n. norm x ^ n /\<^sub>R fact n)
[PROOF STEP]
by (rule summable_exp_generic)
[PROOF STATE]
proof (state)
this:
summable (\<lambda>n. norm x ^ n /\<^sub>R fact n)

goal (1 subgoal):
 1. \<And>n. ?N \<le> n \<Longrightarrow> norm (x ^ n /\<^sub>R fact n) \<le> norm x ^ n /\<^sub>R fact n
[PROOF STEP]
show "norm (x^n /\<^sub>R fact n) \<le> norm x^n /\<^sub>R fact n" for n
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. norm (x ^ n /\<^sub>R fact n) \<le> norm x ^ n /\<^sub>R fact n
[PROOF STEP]
by (simp add: norm_power_ineq)
[PROOF STATE]
proof (state)
this:
norm (x ^ ?n /\<^sub>R fact ?n) \<le> norm x ^ ?n /\<^sub>R fact ?n

goal:
No subgoals!
[PROOF STEP]
qed


[STATEMENT]
lemma vderiv_divI[poly_derivatives]:
  assumes "\<forall>t\<in>T. g t \<noteq> (0::real)" and "D f = f' on T"and "D g = g' on T"
    and "h = (\<lambda>t. (f' t * g t - f t * (g' t)) / (g t)^2)"
  shows "D (\<lambda>t. (f t)/(g t)) = h on T"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1.  D (\<lambda>t. f t / g t) = h on T
[PROOF STEP]
apply(subgoal_tac "(\<lambda>t. (f t)/(g t)) = (\<lambda>t. (f t) * (1/(g t)))")
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t)) \<Longrightarrow>  D (\<lambda>t. f t / g t) = h on T
 2. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
apply(erule ssubst, rule poly_derivatives(5)[OF assms(2)])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1.  D (\<lambda>x. 1 / g x) = ?g'4 on T
 2. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 3. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
apply(rule vderiv_on_composeI[where g=g and f="\<lambda>t. 1/t" and f'="\<lambda>t. - 1/t^2", OF _ assms(3)])
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1.  D (/) 1 = (\<lambda>x. - 1 / x\<^sup>2) on g ` T
 2. ?g'4 = (\<lambda>x. g' x *\<^sub>R (- 1 / (g x)\<^sup>2))
 3. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 4. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
apply(subst has_vderiv_on_def, subst has_vector_derivative_def, clarsimp)
[PROOF STATE]
proof (prove)
goal (4 subgoals):
 1. \<And>x. x \<in> T \<Longrightarrow> D (/) 1 \<mapsto> (\<lambda>xa. - (xa / (g x)\<^sup>2)) at (g x) within g ` T
 2. ?g'4 = (\<lambda>x. g' x *\<^sub>R (- 1 / (g x)\<^sup>2))
 3. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 4. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
using assms(1)
[PROOF STATE]
proof (prove)
using this:
\<forall>t\<in>T. g t \<noteq> 0

goal (4 subgoals):
 1. \<And>x. x \<in> T \<Longrightarrow> D (/) 1 \<mapsto> (\<lambda>xa. - (xa / (g x)\<^sup>2)) at (g x) within g ` T
 2. ?g'4 = (\<lambda>x. g' x *\<^sub>R (- 1 / (g x)\<^sup>2))
 3. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 4. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
apply(force intro!: derivative_eq_intros simp: fun_eq_iff power2_eq_square)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. ?g'4 = (\<lambda>x. g' x *\<^sub>R (- 1 / (g x)\<^sup>2))
 2. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 3. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
\<forall>t\<in>T. g t \<noteq> 0
 D f = f' on T
 D g = g' on T
h = (\<lambda>t. (f' t * g t - f t * g' t) / (g t)\<^sup>2)

goal (3 subgoals):
 1. ?g'4 = (\<lambda>x. g' x *\<^sub>R (- 1 / (g x)\<^sup>2))
 2. \<And>t. t \<in> T \<Longrightarrow> f t * ?g'4 t + f' t * (1 / g t) = h t
 3. (\<lambda>t. f t / g t) = (\<lambda>t. f t * (1 / g t))
[PROOF STEP]
by (auto simp: field_simps power2_eq_square)