[STATEMENT]
lemma deriv_rec_correct:
  assumes "isDERIV 0 f (xs[0:=t])" "0 < length xs"
  shows "((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0:=x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0:=t])) (at t within S)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
[PROOF STEP]
apply(cases "(f, n)" rule: deriv_rec.cases)
[PROOF STATE]
proof (prove)
goal (72 subgoals):
 1. \<And>uu_. (f, n) = (Exp (Var 0), uu_) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. (f, n) = (Cos (Var 0), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. (f, n) = (Inverse (Var 0), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. (f, n) = (Add v va, na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. (f, n) = (Minus v, na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. (f, n) = (Mult v va, na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. (f, n) = (Inverse (Add va vb), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. (f, n) = (Inverse (Minus va), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. (f, n) = (Inverse (Mult va vb), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. (f, n) = (Inverse (Inverse va), na) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec f n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec f (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
apply(safe)
[PROOF STATE]
proof (prove)
goal (72 subgoals):
 1. \<And>_. f = Exp (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. f = Cos (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. f = Inverse (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. f = Add v va \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. f = Minus v \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. f = Mult v va \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. f = Inverse (Add va vb) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. f = Inverse (Minus va) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. f = Inverse (Mult va vb) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. f = Inverse (Inverse va) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
using assms deriv_correct[OF assms]
[PROOF STATE]
proof (prove)
using this:
isDERIV 0 f (xs[0 := t])
0 < length xs
((\<lambda>x. interpret_floatarith (local.deriv 0 f ?n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc ?n)) (xs[0 := t])) (at t within ?S)

goal (72 subgoals):
 1. \<And>_. f = Exp (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. f = Cos (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. f = Inverse (Var 0) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. f = Add v va \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. f = Minus v \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. f = Mult v va \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. f = Inverse (Add va vb) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. f = Inverse (Minus va) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. f = Inverse (Mult va vb) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. f = Inverse (Inverse va) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
proof-
[PROOF STATE]
proof (state)
goal (72 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Cos (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
assume "f = Cos (Var 0)"
[PROOF STATE]
proof (state)
this:
f = Cos (Var 0)

goal (72 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Cos (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
have n_mod_4_cases: "n mod 4 = 0 | n mod 4 = 1 | n mod 4 = 2 | n mod 4 = 3"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. n mod 4 = 0 \<or> n mod 4 = 1 \<or> n mod 4 = 2 \<or> n mod 4 = 3
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
n mod 4 = 0 \<or> n mod 4 = 1 \<or> n mod 4 = 2 \<or> n mod 4 = 3

goal (72 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Cos (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
have Sin_sin: "(\<lambda>xs. interpret_floatarith (Sin (Var 0)) xs) = (\<lambda>xs. sin (xs!0))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. interpret_floatarith (Sin (Var 0)) = (\<lambda>xs. sin (xs ! 0))
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
interpret_floatarith (Sin (Var 0)) = (\<lambda>xs. sin (xs ! 0))

goal (72 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Cos (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 72 subgoals...
[PROOF STEP]
show "((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0:=x])) has_real_derivative
         interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0:=t]))
         (at t within S)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
[PROOF STEP]
using n_mod_4_cases assms
[PROOF STATE]
proof (prove)
using this:
n mod 4 = 0 \<or> n mod 4 = 1 \<or> n mod 4 = 2 \<or> n mod 4 = 3
isDERIV 0 f (xs[0 := t])
0 < length xs

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
[PROOF STEP]
by (auto simp add: mod_Suc Sin_sin field_differentiable_minus
        intro!: derivative_eq_intros)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (deriv_rec (Cos (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Cos (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
assume f_def: "f = Inverse (Var 0)" and "isDERIV 0 f (xs[0:=t])"
[PROOF STATE]
proof (state)
this:
f = Inverse (Var 0)
isDERIV 0 f (xs[0 := t])

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
hence "t \<noteq> 0"
[PROOF STATE]
proof (prove)
using this:
f = Inverse (Var 0)
isDERIV 0 f (xs[0 := t])

goal (1 subgoal):
 1. t \<noteq> 0
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
f = Inverse (Var 0)
isDERIV 0 f (xs[0 := t])
isDERIV 0 f (xs[0 := t])
0 < length xs

goal (1 subgoal):
 1. t \<noteq> 0
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
t \<noteq> 0

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
t \<noteq> 0

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
fix n::nat and x::real
[PROOF STATE]
proof (state)
goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
assume "x \<noteq> 0"
[PROOF STATE]
proof (state)
this:
x \<noteq> 0

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<noteq> 0

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
have "(n mod 2 = 0 \<and> Suc n mod 2 = 1) \<or> (n mod 2 = 1 \<and> Suc n mod 2 = 0)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. n mod 2 = 0 \<and> Suc n mod 2 = 1 \<or> n mod 2 = 1 \<and> Suc n mod 2 = 0
[PROOF STEP]
by (cases n rule: parity_cases) auto
[PROOF STATE]
proof (state)
this:
n mod 2 = 0 \<and> Suc n mod 2 = 1 \<or> n mod 2 = 1 \<and> Suc n mod 2 = 0

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<noteq> 0
n mod 2 = 0 \<and> Suc n mod 2 = 1 \<or> n mod 2 = 1 \<and> Suc n mod 2 = 0
[PROOF STEP]
have "interpret_floatarith (deriv_rec f n) (xs[0:=x]) = fact n * (-1::real)^n / (x^Suc n)"
[PROOF STATE]
proof (prove)
using this:
x \<noteq> 0
n mod 2 = 0 \<and> Suc n mod 2 = 1 \<or> n mod 2 = 1 \<and> Suc n mod 2 = 0

goal (1 subgoal):
 1. interpret_floatarith (deriv_rec f n) (xs[0 := x]) = fact n * (- 1) ^ n / x ^ Suc n
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
x \<noteq> 0
n mod 2 = 0 \<and> Suc n mod 2 = 1 \<or> n mod 2 = 1 \<and> Suc n mod 2 = 0
isDERIV 0 f (xs[0 := t])
0 < length xs

goal (1 subgoal):
 1. interpret_floatarith (deriv_rec f n) (xs[0 := x]) = fact n * (- 1) ^ n / x ^ Suc n
[PROOF STEP]
by (auto simp add: f_def field_simps fact_real_float_equiv)
[PROOF STATE]
proof (state)
this:
interpret_floatarith (deriv_rec f n) (xs[0 := x]) = fact n * (- 1) ^ n / x ^ Suc n

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
?x2 \<noteq> 0 \<Longrightarrow> interpret_floatarith (deriv_rec f ?na2) (xs[0 := ?x2]) = fact ?na2 * (- 1) ^ ?na2 / ?x2 ^ Suc ?na2

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
note closed_formula = this
[PROOF STATE]
proof (state)
this:
?x2 \<noteq> 0 \<Longrightarrow> interpret_floatarith (deriv_rec f ?na2) (xs[0 := ?x2]) = fact ?na2 * (- 1) ^ ?na2 / ?x2 ^ Suc ?na2

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
have "((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative -real (Suc n) * inverse (t ^ Suc (Suc n))) (at t)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative - real (Suc n) * inverse (t ^ Suc (Suc n))) (at t)
[PROOF STEP]
using DERIV_inverse_fun[OF DERIV_pow[where n="Suc n"], where s=UNIV]
[PROOF STATE]
proof (prove)
using this:
?x ^ Suc n \<noteq> 0 \<Longrightarrow> ((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative - (real (Suc n) * ?x ^ (Suc n - Suc 0) * inverse ((?x ^ Suc n) ^ Suc (Suc 0)))) (at ?x)

goal (1 subgoal):
 1. ((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative - real (Suc n) * inverse (t ^ Suc (Suc n))) (at t)
[PROOF STEP]
apply(rule iffD1[OF DERIV_cong_ev[OF refl], rotated 2])
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. t ^ Suc n \<noteq> 0
 2. \<forall>\<^sub>F x in nhds t. inverse (x ^ Suc n) = inverse (x ^ Suc n)
 3. - (real (Suc n) * t ^ (Suc n - Suc 0) * inverse ((t ^ Suc n) ^ Suc (Suc 0))) = - real (Suc n) * inverse (t ^ Suc (Suc n))
[PROOF STEP]
using \<open>t \<noteq> 0\<close>
[PROOF STATE]
proof (prove)
using this:
t \<noteq> 0

goal (3 subgoals):
 1. t ^ Suc n \<noteq> 0
 2. \<forall>\<^sub>F x in nhds t. inverse (x ^ Suc n) = inverse (x ^ Suc n)
 3. - (real (Suc n) * t ^ (Suc n - Suc 0) * inverse ((t ^ Suc n) ^ Suc (Suc 0))) = - real (Suc n) * inverse (t ^ Suc (Suc n))
[PROOF STEP]
by (simp_all add: divide_simps)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative - real (Suc n) * inverse (t ^ Suc (Suc n))) (at t)

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
hence "((\<lambda>x. fact n * (-1::real)^n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)"
[PROOF STATE]
proof (prove)
using this:
((\<lambda>x. inverse (x ^ Suc n)) has_real_derivative - real (Suc n) * inverse (t ^ Suc (Suc n))) (at t)

goal (1 subgoal):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)
[PROOF STEP]
apply(rule iffD1[OF DERIV_cong_ev, OF refl _ _ DERIV_cmult[where c="fact n * (-1::real)^n"], rotated 2])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<forall>\<^sub>F x in nhds t. fact n * (- 1) ^ n * inverse (x ^ Suc n) = fact n * (- 1) ^ n * inverse (x ^ Suc n)
 2. fact n * (- 1) ^ n * (- real (Suc n) * inverse (t ^ Suc (Suc n))) = fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)
[PROOF STEP]
using \<open>t \<noteq> 0\<close>
[PROOF STATE]
proof (prove)
using this:
t \<noteq> 0

goal (2 subgoals):
 1. \<forall>\<^sub>F x in nhds t. fact n * (- 1) ^ n * inverse (x ^ Suc n) = fact n * (- 1) ^ n * inverse (x ^ Suc n)
 2. fact n * (- 1) ^ n * (- real (Suc n) * inverse (t ^ Suc (Suc n))) = fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)
[PROOF STEP]
by (simp_all add: field_simps distrib_left)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)

goal (71 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>na. \<lbrakk>f = Inverse (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 71 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)
[PROOF STEP]
show "((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0:=x])) has_real_derivative
         interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0:=t]))
         (at t within S)"
[PROOF STATE]
proof (prove)
using this:
((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
[PROOF STEP]
apply -
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
[PROOF STEP]
apply (rule has_field_derivative_at_within)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t)
[PROOF STEP]
apply(rule iffD1[OF DERIV_cong_ev[OF refl _ closed_formula[OF \<open>t \<noteq> 0\<close>, symmetric]], unfolded f_def, rotated 1])
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> (?f4 has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t)
 2. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> \<forall>\<^sub>F x in nhds t. ?f4 x = interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])
[PROOF STEP]
apply simp
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> \<forall>\<^sub>F x in nhds t. fact n * (- 1) ^ n * (inverse x * inverse (x ^ n)) = interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])
[PROOF STEP]
using assms
[PROOF STATE]
proof (prove)
using this:
isDERIV 0 f (xs[0 := t])
0 < length xs

goal (1 subgoal):
 1. ((\<lambda>x. fact n * (- 1) ^ n * inverse (x ^ Suc n)) has_real_derivative fact (Suc n) * (- 1) ^ Suc n / t ^ Suc (Suc n)) (at t) \<Longrightarrow> \<forall>\<^sub>F x in nhds t. fact n * (- 1) ^ n * (inverse x * inverse (x ^ n)) = interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])
[PROOF STEP]
by (simp, safe, simp_all add: fact_real_float_equiv inverse_eq_divide even_iff_mod_2_eq_zero)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)

goal (70 subgoals):
 1. \<And>_. \<lbrakk>f = Exp (Var 0); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Exp (Var 0)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Exp (Var 0)) (Suc n)) (xs[0 := t])) (at t within S)
 2. \<And>v va na. \<lbrakk>f = Add v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Add v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Add v va) (Suc n)) (xs[0 := t])) (at t within S)
 3. \<And>v na. \<lbrakk>f = Minus v; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Minus v) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Minus v) (Suc n)) (xs[0 := t])) (at t within S)
 4. \<And>v va na. \<lbrakk>f = Mult v va; isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Mult v va) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Mult v va) (Suc n)) (xs[0 := t])) (at t within S)
 5. \<And>va vb na. \<lbrakk>f = Inverse (Add va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Add va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Add va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 6. \<And>va na. \<lbrakk>f = Inverse (Minus va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Minus va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Minus va)) (Suc n)) (xs[0 := t])) (at t within S)
 7. \<And>va vb na. \<lbrakk>f = Inverse (Mult va vb); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Mult va vb)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Mult va vb)) (Suc n)) (xs[0 := t])) (at t within S)
 8. \<And>va na. \<lbrakk>f = Inverse (Inverse va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Inverse va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Inverse va)) (Suc n)) (xs[0 := t])) (at t within S)
 9. \<And>va na. \<lbrakk>f = Inverse (Cos va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Cos va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Cos va)) (Suc n)) (xs[0 := t])) (at t within S)
 10. \<And>va na. \<lbrakk>f = Inverse (Arctan va); isDERIV 0 f (xs[0 := t]); 0 < length xs; \<And>n S. ((\<lambda>x. interpret_floatarith (local.deriv 0 f n) (xs[0 := x])) has_real_derivative interpret_floatarith (local.deriv 0 f (Suc n)) (xs[0 := t])) (at t within S)\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (deriv_rec (Inverse (Arctan va)) n) (xs[0 := x])) has_real_derivative interpret_floatarith (deriv_rec (Inverse (Arctan va)) (Suc n)) (xs[0 := t])) (at t within S)
A total of 70 subgoals...
[PROOF STEP]
qed (use assms in \<open>simp_all add: has_field_derivative_subset[OF DERIV_exp subset_UNIV]\<close>)