[STATEMENT]
lemma interpret_floatarith_FDERIV_floatarith_eucl_of_env:\<comment> \<open>TODO: cleanup, reduce to DERIV?!\<close>
  assumes iD: "\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs"
  assumes ds_fresh: "freshs_floatarith fa ds"
  assumes [simp]: "length xs = DIM ('a)" "length ds = DIM ('a)"
    "\<And>i. i \<in> set xs \<Longrightarrow> i < length vs" "distinct xs"
    "\<And>i. i \<in> set ds \<Longrightarrow> i < length vs" "distinct ds"
  shows "((\<lambda>x::'a::executable_euclidean_space.
    (interpret_floatarith fa (list_updates xs (list_of_eucl x) vs))) has_derivative
    (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs) )
    ) (at (eucl_of_env xs vs))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
using iD ds_fresh
[PROOF STATE]
proof (prove)
using this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) fa vs
freshs_floatarith fa ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
proof (induction fa)
[PROOF STATE]
proof (state)
goal (18 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Add fa1 fa2) vs; freshs_floatarith (Add fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Add fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Add fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Minus fa) vs; freshs_floatarith (Minus fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 18 subgoals...
[PROOF STEP]
case (Add fa1 fa2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Add fa1 fa2) vs
freshs_floatarith (Add fa1 fa2) ds

goal (18 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Add fa1 fa2) vs; freshs_floatarith (Add fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Add fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Add fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Minus fa) vs; freshs_floatarith (Minus fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 18 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Add fa1 fa2) vs
freshs_floatarith (Add fa1 fa2) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Add fa1 fa2) vs
freshs_floatarith (Add fa1 fa2) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Add fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Add fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric])
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Add fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Add fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (17 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Minus fa) vs; freshs_floatarith (Minus fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 17 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (17 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Minus fa) vs; freshs_floatarith (Minus fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 17 subgoals...
[PROOF STEP]
case (Minus fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Minus fa) vs
freshs_floatarith (Minus fa) ds

goal (17 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Minus fa) vs; freshs_floatarith (Minus fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 17 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Minus fa) vs
freshs_floatarith (Minus fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Minus fa) vs
freshs_floatarith (Minus fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric])
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Minus fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Minus fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (16 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 16 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (16 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 16 subgoals...
[PROOF STEP]
case (Mult fa1 fa2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Mult fa1 fa2) vs
freshs_floatarith (Mult fa1 fa2) ds

goal (16 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Mult fa1 fa2) vs; freshs_floatarith (Mult fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 16 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Mult fa1 fa2) vs
freshs_floatarith (Mult fa1 fa2) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Mult fa1 fa2) vs
freshs_floatarith (Mult fa1 fa2) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric])
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Mult fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Mult fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (15 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 15 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (15 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 15 subgoals...
[PROOF STEP]
case (Inverse fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Inverse fa) vs
freshs_floatarith (Inverse fa) ds

goal (15 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Inverse fa) vs; freshs_floatarith (Inverse fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 15 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Inverse fa) vs
freshs_floatarith (Inverse fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Inverse fa) vs
freshs_floatarith (Inverse fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (force intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] power2_eq_square)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Inverse fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Inverse fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (14 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 14 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (14 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 14 subgoals...
[PROOF STEP]
case (Cos fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Cos fa) vs
freshs_floatarith (Cos fa) ds

goal (14 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Cos fa) vs; freshs_floatarith (Cos fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 14 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Cos fa) vs
freshs_floatarith (Cos fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Cos fa) vs
freshs_floatarith (Cos fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros ext simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map add.commute minus_sin_cos_eq
        simp flip: mult_minus_left list_of_eucl_coord_update cos_pi_minus)
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Cos fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Cos fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (13 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 13 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (13 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 13 subgoals...
[PROOF STEP]
case (Arctan fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Arctan fa) vs
freshs_floatarith (Arctan fa) ds

goal (13 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Arctan fa) vs; freshs_floatarith (Arctan fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 13 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Arctan fa) vs
freshs_floatarith (Arctan fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Arctan fa) vs
freshs_floatarith (Arctan fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric])
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Arctan fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Arctan fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (12 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 12 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (12 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 12 subgoals...
[PROOF STEP]
case (Abs fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Abs fa) vs
freshs_floatarith (Abs fa) ds

goal (12 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Abs fa) vs; freshs_floatarith (Abs fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 12 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Abs fa) vs
freshs_floatarith (Abs fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Abs fa) vs
freshs_floatarith (Abs fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Abs fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Abs fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (11 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 11 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (11 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 11 subgoals...
[PROOF STEP]
case (Max fa1 fa2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Max fa1 fa2) vs
freshs_floatarith (Max fa1 fa2) ds

goal (11 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Max fa1 fa2) vs; freshs_floatarith (Max fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
A total of 11 subgoals...
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Max fa1 fa2) vs
freshs_floatarith (Max fa1 fa2) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Max fa1 fa2) vs
freshs_floatarith (Max fa1 fa2) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Max fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Max fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (10 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (10 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Min fa1 fa2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Min fa1 fa2) vs
freshs_floatarith (Min fa1 fa2) ds

goal (10 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Min fa1 fa2) vs; freshs_floatarith (Min fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 10. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Min fa1 fa2) vs
freshs_floatarith (Min fa1 fa2) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Min fa1 fa2) vs
freshs_floatarith (Min fa1 fa2) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Min fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Min fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (9 subgoals):
 1. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (9 subgoals):
 1. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case Pi
[PROOF STATE]
proof (state)
this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) Pi vs
freshs_floatarith Pi ds

goal (9 subgoals):
 1. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) Pi vs; freshs_floatarith Pi ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 9. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) Pi vs
freshs_floatarith Pi ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) Pi vs
freshs_floatarith Pi ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith Pi (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith Pi xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (8 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (8 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Sqrt fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Sqrt fa) vs
freshs_floatarith (Sqrt fa) ds

goal (8 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Sqrt fa) vs; freshs_floatarith (Sqrt fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 8. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Sqrt fa) vs
freshs_floatarith (Sqrt fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Sqrt fa) vs
freshs_floatarith (Sqrt fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (force intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Sqrt fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Sqrt fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (7 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (7 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Exp fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Exp fa) vs
freshs_floatarith (Exp fa) ds

goal (7 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Exp fa) vs; freshs_floatarith (Exp fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 7. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Exp fa) vs
freshs_floatarith (Exp fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Exp fa) vs
freshs_floatarith (Exp fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Exp fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Exp fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (6 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (6 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Powr fa1 fa2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Powr fa1 fa2) vs
freshs_floatarith (Powr fa1 fa2) ds

goal (6 subgoals):
 1. \<And>fa1 fa2. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Powr fa1 fa2) vs; freshs_floatarith (Powr fa1 fa2) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 6. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Powr fa1 fa2) vs
freshs_floatarith (Powr fa1 fa2) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa1 vs; freshs_floatarith fa1 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa1 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa1 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa2 vs; freshs_floatarith fa2 ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa2 (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa2 xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Powr fa1 fa2) vs
freshs_floatarith (Powr fa1 fa2) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (force intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps divide_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Powr fa1 fa2) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Powr fa1 fa2) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (5 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (5 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Ln fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Ln fa) vs
freshs_floatarith (Ln fa) ds

goal (5 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Ln fa) vs; freshs_floatarith (Ln fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 5. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Ln fa) vs
freshs_floatarith (Ln fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Ln fa) vs
freshs_floatarith (Ln fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (force intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Ln fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Ln fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (4 subgoals):
 1. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (4 subgoals):
 1. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Power fa x2a)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (fa ^\<^sub>e x2a) vs
freshs_floatarith (fa ^\<^sub>e x2a) ds

goal (4 subgoals):
 1. \<And>fa x2a. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 4. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (fa ^\<^sub>e x2a) vs
freshs_floatarith (fa ^\<^sub>e x2a) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (fa ^\<^sub>e x2a) vs
freshs_floatarith (fa ^\<^sub>e x2a) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
apply (cases x2a)
[PROOF STATE]
proof (prove)
goal (2 subgoals):
 1. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds; x2a = 0\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>nat. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (fa ^\<^sub>e x2a) vs; freshs_floatarith (fa ^\<^sub>e x2a) ds; x2a = Suc nat\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
apply (auto intro!: DIM_positive derivative_eq_intros simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>nat. \<lbrakk>((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds; x2a = Suc nat\<rbrakk> \<Longrightarrow> (\<lambda>h. interpret_floatarith fa vs ^ nat * (eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl h) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl h) vs)) ds)) + real nat * (interpret_floatarith fa vs * (interpret_floatarith fa vs ^ (nat - Suc 0) * (eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl h) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl h) vs)) ds))))) = (\<lambda>d. interpret_floatarith fa vs ^ nat * (eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds)) + real nat * (interpret_floatarith fa vs ^ nat * (eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds))))
[PROOF STEP]
apply (auto intro!: ext simp: )
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>nat h. \<lbrakk>((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds; x2a = Suc nat; interpret_floatarith fa vs * interpret_floatarith fa vs ^ (nat - Suc 0) \<noteq> interpret_floatarith fa vs ^ nat; 0 < nat\<rbrakk> \<Longrightarrow> eucl_of_list (map (\<lambda>x. interpret_floatarith (DERIV_floatarith x fa) (list_updates ds (list_of_eucl h) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl h) vs)) ds) = 0
[PROOF STEP]
by (simp add: semiring_normalization_rules(27))
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (fa ^\<^sub>e x2a) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (fa ^\<^sub>e x2a) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (3 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (3 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Floor fa)
[PROOF STATE]
proof (state)
this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Floor fa) vs
freshs_floatarith (Floor fa) ds

goal (3 subgoals):
 1. \<And>fa. \<lbrakk>\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs)); \<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Floor fa) vs; freshs_floatarith (Floor fa) ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 3. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Floor fa) vs
freshs_floatarith (Floor fa) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) fa vs; freshs_floatarith fa ds\<rbrakk> \<Longrightarrow> ((\<lambda>x. interpret_floatarith fa (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith fa xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Floor fa) vs
freshs_floatarith (Floor fa) ds

goal (1 subgoal):
 1. ((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (force intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>x. interpret_floatarith (Floor fa) (list_updates xs (list_of_eucl x) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Floor fa) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (2 subgoals):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Var x)
[PROOF STATE]
proof (state)
this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Var x) vs
freshs_floatarith (Var x) ds

goal (2 subgoals):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Var x) vs; freshs_floatarith (Var x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
 2. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Var x) vs
freshs_floatarith (Var x) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Var x) vs
freshs_floatarith (Var x) ds

goal (1 subgoal):
 1. ((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
apply (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] if_distrib)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<notin> set ds \<Longrightarrow> ((\<lambda>xa. list_updates xs (list_of_eucl xa) vs ! x) has_derivative (\<lambda>d. eucl_of_list (map (\<lambda>xa. (if xa = x then interpret_floatarith (fold_const_fa (Num 1)) else interpret_floatarith (fold_const_fa (Num 0))) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds))) (at (eucl_of_env xs vs))
[PROOF STEP]
apply (subst list_updates_nth)
[PROOF STATE]
proof (prove)
goal (3 subgoals):
 1. \<And>xa. x \<notin> set ds \<Longrightarrow> length xs = length (list_of_eucl xa)
 2. \<And>xa. x \<notin> set ds \<Longrightarrow> distinct xs
 3. x \<notin> set ds \<Longrightarrow> ((\<lambda>xa. if x < length vs \<and> x \<in> set xs then list_of_eucl xa ! index xs x else vs ! x) has_derivative (\<lambda>d. eucl_of_list (map (\<lambda>xa. (if xa = x then interpret_floatarith (fold_const_fa (Num 1)) else interpret_floatarith (fold_const_fa (Num 0))) (list_updates ds (list_of_eucl d) vs)) xs) \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl d) vs)) ds))) (at (eucl_of_env xs vs))
[PROOF STEP]
apply (auto intro!: derivative_eq_intros ext split: if_splits
        cong: if_cong simp: if_distribR eucl_of_list_if)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>xa. \<lbrakk>x \<notin> set ds; x \<in> set xs\<rbrakk> \<Longrightarrow> xa \<bullet> Basis_list ! index xs x = Basis_list ! index xs x \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl xa) vs)) ds)
[PROOF STEP]
apply (subst inner_commute)
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>xa. \<lbrakk>x \<notin> set ds; x \<in> set xs\<rbrakk> \<Longrightarrow> Basis_list ! index xs x \<bullet> xa = Basis_list ! index xs x \<bullet> eucl_of_list (map ((!) (list_updates ds (list_of_eucl xa) vs)) ds)
[PROOF STEP]
apply (rule arg_cong[where f="\<lambda>b. a \<bullet> b" for a])
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<And>xa. \<lbrakk>x \<notin> set ds; x \<in> set xs\<rbrakk> \<Longrightarrow> xa = eucl_of_list (map ((!) (list_updates ds (list_of_eucl xa) vs)) ds)
[PROOF STEP]
apply (auto intro!: euclidean_eqI[where 'a='a] simp: eucl_of_list_inner list_updates_nth index_nth_id)
[PROOF STATE]
proof (prove)
goal:
No subgoals!
[PROOF STEP]
done
[PROOF STATE]
proof (state)
this:
((\<lambda>xa. interpret_floatarith (Var x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Var x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal (1 subgoal):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
case (Num x)
[PROOF STATE]
proof (state)
this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Num x) vs
freshs_floatarith (Num x) ds

goal (1 subgoal):
 1. \<And>x. \<lbrakk>\<And>i. i < DIM('a) \<Longrightarrow> isDERIV (xs ! i) (Num x) vs; freshs_floatarith (Num x) ds\<rbrakk> \<Longrightarrow> ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
then
[PROOF STATE]
proof (chain)
picking this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Num x) vs
freshs_floatarith (Num x) ds
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
?i < DIM('a) \<Longrightarrow> isDERIV (xs ! ?i) (Num x) vs
freshs_floatarith (Num x) ds

goal (1 subgoal):
 1. ((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))
[PROOF STEP]
by (auto intro!: derivative_eq_intros DIM_positive simp: FDERIV_floatarith_def interpret_floatarith_inner_floatariths
        interpret_floatariths_map algebra_simps list_of_eucl_coord_update[symmetric] )
[PROOF STATE]
proof (state)
this:
((\<lambda>xa. interpret_floatarith (Num x) (list_updates xs (list_of_eucl xa) vs)) has_derivative (\<lambda>d. interpret_floatarith (FDERIV_floatarith (Num x) xs (map Var ds)) (list_updates ds (list_of_eucl d) vs))) (at (eucl_of_env xs vs))

goal:
No subgoals!
[PROOF STEP]
qed